UNIX/Linuxでコマンドのexitコードを反転させる

仕事で、正常終了時にコマンドのexitコードを0に、異常終了時には1にしたいとの話があり、やり方ってなんか無いのかな?と調べたので、その備忘。
やり方は簡単で、単に対象のコマンド実行時に頭に「!」をつけるだけだ。

! exitコードを反転させたいコマンド
Sponsored Links

実際に、lsコマンドで試してみよう。

20160116_000000

[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コードの意味を反転させたいなら、これで対応できるのでは無いだろうか?


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*