检查系统所有用户的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.178linux.com/73520
评论列表(1条)
主要介绍了正则表达式,及bash脚本的简单用法,建议将代码插入到”插入程序代码”中去,这样的在排版上效果会好一些的!