コマンドを実行すると、rysnc
コマンドでエラー(コード23)が発生しても終了ステータスは0です。ファイルが見つからない場合は、終了ステータスコードでスクリプトを終了したいのですが、終了ステータス0のみを提供するため、これはできません。ファイルが見つからないときにスクリプトを終了する他の方法はありますか?
$ rsync -a --files-from=test.txt . tmp || true
rsync: link_stat "/home/user/a.txt" failed: No such file or directory (2)
rsync: link_stat "/home/user/b.txt" failed: No such file or directory (2)
rsync: link_stat "/home/user/c.txt" failed: No such file or directory (2)
rsync: link_stat "/home/user/d.txt" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
$ echo $?
0
答え1
@Roops23、質問はです|| true
。any_code
ORはtrue
常にゼロを提供するためです。
だからコマンドは
$ rsync -a --files-from=test.txt . tmp
希望の終了コード(例:23)を入力してください。 ! !