次のbashスクリプトがあります。
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
このスクリプトは、-eなしでは実行されません。-e
このスクリプトでは何ができますか?また、$?
このコンテキストでは何をしますか?
@pst:はに
—
グレッグヒューギル
-e
文書化されていset
ます。
これを行うことにより、スクリプトを簡素化できます
—
。– bollovan
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
if
との間にスペースがありません[
。このスクリプトは動作しませんで -e
あればあるため、grep
下その後、何も見つからない-e
スクリプトがすぐそこに終了します。がなければ-e
、メッセージが逆方向に表示されます。ステータス($?
)が0の場合、grepがユーザーを見つけたことを意味します。ちなみに、これは `grep '^ username:'である必要があります(より長い名前の別のユーザーがいる場合はどうなりますか?)。
ウィル
—
14年
#/bin/bash -e
と同じ効果を持つ#/bin/bash
ライン#1にし、set -e
ライン#2に?
-e
マニュアルページにはありません(これに答えるアドレスを見たいです)。$?
最後の終了コード(egrep
上記で生成されたプロセスの終了コード)が含まれます。