web-dev-qa-db-ja.com

chmod +サイレントモード+エラーにもかかわらず終了コード0を強制する方法

Chmodを実行してコマンドからのエラーを無視することは可能ですか?

例(例を示すためにfile.txtが存在しないことに注意してください)

入力すると

chmod 777 file.txt

出力でエラーが発生する

  chmod: cannot access file.txt : no such file or directory

したがって、次のようにコマンドに-fフラグを追加します:(ケースを示すためにfile.txtは存在しません)

  chmod -f 777 file.txt
  echo $?
  1

しかし、例のchmod return 1から

エラーにもかかわらずchmodコマンドに強制的に終了コード0を与える方法をアドバイスしてください

38
user58412

エラーにもかかわらずchmodコマンドに強制的に終了コード0を与える方法をアドバイスしてください

chmod -f 777 file.txt || :

これは:、つまりchmodが失敗した場合のnullコマンド。 nullコマンドは何もしませんが常に成功するため、終了コード0が表示されます。

51
devnull

chmod -f 777 file.txt || true

ORであるため、ステートメントの1つがtrueを返す場合、戻り値はtrueです。この結果、終了ステータスはゼロになります。

56
Gerry

私はいつも愛していた

 chmod -f 777 file.txt || exit 0
6
Eran Chetzroni