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

仕事で、正常終了時にコマンドの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コードの意味を反転させたいなら、これで対応できるのでは無いだろうか?

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

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