0

我正在尝试在 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 中运行它,它工作正常。

怎么了?

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 回答