我正在尝试在 Rake 中运行以下 shell 命令:
sh "d='jps -l | grep jar | cut -d ' ' -f 1'; if [ -z \"$d\" ]; then :; else kill \"$d\"; fi;"
但是我得到:
sh: -f 1: not found
如果我在 linux shell 中运行它,它工作正常。
怎么了?
我之前解释错了你的问题。这就是你想要的。
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;'