しばらくサーバーに接続していないユーザーを検出するスクリプトを作成しています。
これまでのところすべて問題ありませんが、スクリプトから生成されたリストから不要なエントリを削除しようとしています。使用されていない引数で lastlog が呼び出されたときに、出力が画面に出力されないように、スクリプトに例外を追加したいと思います。
私は次のようなことを試しました:
if [ $? -gt 0 ]; then
echo "ERROR!"
fi
しかし、問題は lastog が成功時に 0 を返すことですが、単純に:
lastlog: Unknown user or range: infolog
エラーで。したがって、例外をキャッチできません。
これが私のコードです(これは非常に単純です)
#!/bin/bash
FILES=../*
for year in 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
do
for f in $FILES
do
tempUser=${f:3:20}
userCommand=`lastlog -u $tempUser | grep $year`
if [ ${#userCommand} != 0 ]
then
echo "$userCommand"
fi
done
done