2016-04-13 14 views
0

ユーザーがログインしているかどうかを確認したいと思います。 grepのリスト()$ 1(ユーザー名)を見つけた場合ユーザーがログインしているかどうかを確認するには?

if [ "$(who | grep -wq "$1")" == 0 ] 
echo $1 "is logged in" 

"$(who | grep -w "$1")"は0に等しいです。したがって、ユーザがリストに登録されている場合、ユーザはログインしています。 どうしたのですか?

答えて

3

grep does not print 0これは、スクリプトがチェックするものです。その終了コードそれは単にの終了コードを確認するには0です:bashで

if who | grep -wq "$1"; then 
    echo "$1 is logged in" 
fi 
0

を、$?は終了コードを保存するために使用されます。 grepの終了コードを確認するために使用することができます。

who | grep -wq "$1" 
if [ $? -eq 0 ]; then 
    echo "$1 is logged in" 
fi 
関連する問題