我尝试在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中运行它,它工作得很好。
怎么啦?
发布于 2012-08-24 18:44:04
我之前把你的问题理解错了。这就是你想要的。
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-24 18:45:08
您需要转义您的单引号,并将整个字符串引起来:
d='jps -l | grep jar | cut -d \' \' -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;'
https://stackoverflow.com/questions/12107831
复制相似问题