Rake で次のシェル コマンドを実行しようとしています。
sh "d='jps -l | grep jar | cut -d ' ' -f 1'; if [ -z \"$d\" ]; then :; else kill \"$d\"; fi;"
しかし、私は得る:
sh: -f 1: not found
Linuxシェルで実行すると正常に動作します。
なにが問題ですか?
私はあなたの質問を以前に間違って解釈しました。これはあなたが望むものです。
d='jps -l | grep jar | cut -d " " -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;'
system(d)
また
コマンドの出力が必要な場合(この場合は必要ないと思います)
output = `jps -l | grep jar | cut -d " " -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;`
一重引用符をエスケープして、文字列全体を引用する必要があります。
d='jps -l | grep jar | cut -d \' \' -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;'