2012-08-24 31 views
0

我試圖在耙運行以下shell命令:耙 - 運行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下運行外殼,它工作正常。

出了什麼問題?

回答

1

我之前解釋過你的問題。這是你想要的。

d='jps -l | grep jar | cut -d " " -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;' 
system(d) 

OR

如果你想命令的輸出(我猜你在這種情況下沒有)

output = `jps -l | grep jar | cut -d " " -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;` 
+0

sh「d = \」jps -l | grep jar | cut -d''-f 1 \「; if [-z \」$ d \「]; then:; else kill \」$ d \「; fi;」不起作用 – Dejell

+0

更新了我的答案。 –

0

你需要逃避你的單引號和引用整個字符串:

d='jps -l | grep jar | cut -d \' \' -f 1; if [ -z "$d" ]; then :; else kill "$d"; fi;' 
+0

它不工作。現在的命令是sh「d ='jps -l | grep jar | cut -d'''-f 1; if [-z \」$ d \「]; then:; else kill \」$ d \「 ; fi;'「,我得到一個錯誤 – Dejell