仕事で、正常終了時にコマンドのexitコードを0に、異常終了時には1にしたいとの話があり、やり方ってなんか無いのかな?と調べたので、その備忘。
やり方は簡単で、単に対象のコマンド実行時に頭に「!」をつけるだけだ。
! exitコードを反転させたいコマンド
実際に、lsコマンドで試してみよう。
[root@localhost ~]# # 存在するファイルをlsで指定(exitコードは0)
[root@localhost ~]# ls -la /work/hostname_aaa_001.txt
-rw-r--r--. 1 root root 8 1月 3 09:20 /work/hostname_aaa_001.txt
[root@localhost ~]# echo $?
0
[root@localhost ~]#
[root@localhost ~]# # 存在しないファイルをlsで指定(exitコードは1)
[root@localhost ~]# ls -la /work/hostname_aaa_100.txt
ls: /work/hostname_aaa_100.txt にアクセスできません: そのようなファイルやディレクトリはありません
[root@localhost ~]# echo $?
2
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# # 存在するファイルをlsで指定(exitコードは反転されて1)
[root@localhost ~]# ! ls -la /work/hostname_aaa_001.txt
-rw-r--r--. 1 root root 8 1月 3 09:20 /work/hostname_aaa_001.txt
[root@localhost ~]# echo $?
1
[root@localhost ~]#
[root@localhost ~]# # 存在しないファイルをlsで指定(exitコードは反転されて0)
[root@localhost ~]# ! ls -la /work/hostname_aaa_100.txt
ls: /work/hostname_aaa_100.txt にアクセスできません: そのようなファイルやディレクトリはありません
[root@localhost ~]# echo $?
0
0以外だったら0、0だったら1に変換している事がわかる。
何かしらの判定でexitコードの意味を反転させたいなら、これで対応できるのでは無いだろうか?