檢查系統所有用戶的shell是否為bash?
注釋:用grep查找是否有此類用戶,如果有則為真,則$?必然為0;顯示的passwd結果對我們沒意義,所以重定向到空。
grep “\bbash\b$” /etc/passwd &> /dev/null
A=`echo $?`
echo “such users”
grep “\bbash\b$” /etc/passwd
else
echo “not such user”
fi
查看/etc/inittab下面有空白行,有請計算行數,否則顯示沒有。
grep “^[[:space:]]$” /etc/inittab
A=”echo $?”
if [ $A -eq 0 ];then
echo `grep “^[[:space:]]$” /etc/inittab | wc -l`
else
echo “no lins”
fi
取用戶user2的UI和GID,如果相等,則顯示good guy ,否則顯示bad guy.
NAME=user2
B=`id -u $NAME`
C=`id -g $NAME`
if [ $B -eq $C ];then
echo “good guy”
else
echo “bad guy”
fi
檢查命令歷史數是否大于1000,大于則顯示 fill gone 否則顯示ok
A=`history | wc -l`
if [ $A -gt 1000 ];then
echo “will gone”
else
echo “ok”
fi
位置變量:
例如:$1 $2 $3 $4 $5。是指變量$1 $2 $3 每個位置變量的引用就叫位置變量
特殊變量
$?: 檢測變量命令或者腳本執行正確與否。能執行為真,則$?為0;不能執行為假,則$?為1-255之間任意數皆可。
$#:用于計算腳本名后面的位置變量個數。
例如:給腳本傳遞三個參數(整數),顯示些兩者之及之乘積?
腳本如下:
注釋:如果傳遞參數小于3個,則提示錯誤,并提前結束腳本運行。
if [ $# -lt 3 ];then
echo “usage is error”
exit 2
fi
注釋:計算變量$1 $2 $3 之和如下
echo “the sum is $[$1*$2-$3]”
命令行則為:bash file2.sh 3 8 5
執行結果為如下:
the sum is 6
the sum is 19
原創文章,作者:hjw2017,如若轉載,請注明出處:http://www.www58058.com/73520
主要介紹了正則表達式,及bash腳本的簡單用法,建議將代碼插入到”插入程序代碼”中去,這樣的在排版上效果會好一些的!