が、私は(簡体字以上)の引数でのpgrep呼び出そうとbashスクリプトを持って期待通りに動作しません引数がpgrepに渡されず、何らかの理由でエコーに渡されることを意味します。私は期待してい何bashスクリプト/のpgrepは
:
7632
pgrep -f '/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf$'
私は、それ自体でプリプレグラインを実行すると、予想通り、それは7632を出力します。
ここで何か問題がありますか?私はsh、ダッシュ、bashで試しました。同じ結果、私は本当に問題が表示されません。
PATTERN="/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf\$"
pgrep -f "$PATTERN"
編集:とエコーのために私はどうなる:
echo pgrep -f \'$PATTERN\'
+1二重引用符を使用し、パターン文字列の中から一重引用符を削除する場合は+1してください。しかし、おそらく第2の変更点を指摘しておくべきでしょう。 –
@JonathanLeffler:注目してください。 –
編集:申し訳ありませんが、stackoverflowは、改行を挿入する代わりに私のコメントを提出...あなたのソリューションは、ありがとうございます!なぜ私はプロンプトでコマンドを実行すると動作するのですか?私のスクリプトでは ""必要ですか? – alex