整数grepが文字列と一致しない場合、どの終了コードが返されますか?

整数grepが文字列と一致しない場合、どの終了コードが返されますか?

整数grepが文字列と一致しない場合、どの終了コードが返されますか?

一致した場合は0を返し、一致しない場合は1を返すことを知っています。

そうですか?

ベストアンサー1

man grep助ける:

EXIT STATUS
    The grep utility exits with one of the following values:

    0     One or more lines were selected.
    1     No lines were selected.
    >1    An error occurred.

また、GNUグレブ:

However, if the -q or --quiet or --silent option is used and a line is
selected, the exit status is 0 even if an error occurred. Other grep 
implementations may exit with status greater than 2 on error.

そして実装に応じて、

Normally, exit status is 0 if matches were found, and 1 if
no  matches  were found.  (The -v option inverts the sense
of the exit status.)

自分自身をテストするには、スクリプトをスクリプトに入れて実行します。

#!/bin/bash
echo -n "Match: "
echo grep | grep grep >/dev/null; echo $?
echo -n "Inverted match (-v): "
echo grep | grep -v grep; echo $?
echo -n "Nonmatch: "
echo grep | grep grepx; echo $?
echo -n "Inverted nonmatch (-v): "
echo grep | grep -v grepx >/dev/null; echo $?
echo -n "Quiet match (-q): "
echo grep | grep -q grep; echo $?
echo -n "Quiet nonmatch (-q): "
echo grep | grep -q grepx; echo $?
echo -n "Inverted quiet match (-qv): "
echo grep | grep -qv grep; echo $?
echo -n "Inverted quiet nonmatch (-qv): "
echo grep | grep -qv grepx; echo $?

おすすめ記事