我有嘗試調用p纖ep與參數(在簡化的)一個bash腳本:bash腳本/ p纖ep工作不正常
PATTERN="'/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf\$'"
pgrep -f $PATTERN
echo pgrep -f $PATTERN
提供了以下的輸出:
Usage: pgrep [-cflvx] [-d DELIM] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
[-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
pgrep -f '/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf$'
我想這意味着該參數不傳遞給pgrep,但由於某種原因傳遞給回顯。
我很期待:
7632
pgrep -f '/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf$'
當我本身運行預浸料線,它輸出7632預期。
我在這裏做錯了什麼?我用sh,dash和bash嘗試過。相同的結果,我真的沒有看到問題。
+1用於雙引號並從模式字符串中刪除單引號。不過,你也應該指出第二個改變。 – 2012-02-20 17:13:00
@JonathanLeffler:感謝您的關注。 – 2012-02-20 17:46:56
編輯:對不起,stackoverflow提交我的意見,而不是插入一個換行符...您的解決方案的作品,謝謝!你能向我解釋爲什麼當我在提示符下運行命令時工作原理,但在我的腳本中它需要「」?謝謝 – alex 2012-02-20 18:05:07