5

ファイルが開いているかどうかをテストしてから、終了コードで何かをしようとしています。現在、次のようにしています。

   FILE=/usr/local/test.sh
   lsof "$FILE" | grep -q COMMAND &>/dev/null
   completed=$? 

出力を /dev/null にリダイレクトして「$?」をキャプチャするのではなく、終了コードを直接ローカル変数にプッシュする方法はありますか? 変数?

4

1 に答える 1

3

さて、あなたはできる:

lsof "$FILE" | grep -q COMMAND; completed=$?

とにかく grep -q は静かなので、何もリダイレクトする必要はありません。grep が成功した場合に特定のアクションを実行したい場合は、 && 演算子を使用してください。この場合、終了ステータスを保存する必要はおそらくありません。

lsof "$FILE" | grep -q COMMAND && echo 'Command was found!'
于 2012-06-22T10:06:54.733 に答える