0

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シェルで実行すると正常に動作します。

なにが問題ですか?

4

2 に答える 2

1

私はあなたの質問を以前に間違って解釈しました。これはあなたが望むものです。

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;`
于 2012-08-24T10:44:03.667 に答える
0

一重引用符をエスケープして、文字列全体を引用する必要があります。

d='jps -l | grep jar | cut -d \' \' -f 1; if [ -z "$d" ]; then :; else kill  "$d"; fi;'
于 2012-08-24T10:45:07.817 に答える