2 つのパラメーターを使用する Java でシェル スクリプトを呼び出しています。
private void invokeShellScript(String script,String subject,String message)
{
String shellCmd = null;
try
{
shellCmd = script.trim() + " " + subject + " " + message;
Process process=Runtime.getRuntime().exec(shellCmd);
process.waitFor();
}
catch(Exception e)
{
LOGGER.error("Exception occured while invoking the message report script");
}
}
ここで件名とメッセージをシェル スクリプトに渡すと、内容が適切に解析されません。
ここで、Subject="Hello This is a test mail" の場合とします。次に、シェル スクリプトは、サブジェクトがHelloであり、メッセージがThisであると見なします。
ここでは、文字列内のスペースが問題を引き起こしていると推測しています。
どうすればこの問題を解決できますか。