一、变量定义和使用
#DATESTR=`/bin/date +%Y%m%d`
#TIME=$(date +%F)
#echo $TIME
#NUM=1
#NAME='JOIN TOM'
#NAME="JOIN TTY$NUM"
#set[unset] 查看/删除已经定义的变量
二、位置变量
#vi a.sh
#!/bin/sh
echo $0,$1,$2
#sh a.sh 1 2 3
输出 a.sh 1 2
三、特殊变量
$? 上一个命令执行是否结果0:成功,非0:失败
$* 命令的所有参数
$# 参数个数
$$ 程序的pid
$! 上一个后台命令的pid
#vi b.sh
#!/bin/sh
echo '$#=' $#
echo '$*=' $*
echo '$?=' $?
echo '$$=' $$
四、获取输入
#vi c.sh
#!/bin/sh
read var1 var2 var3
echo $var1,$var2,$var3
sh -x(调试模式) c.sh
五、计算
expr 3 + 1 对整数变量进行运算
expr 3 \* 3 乘法需要转意
六、变量测试
WEB=`/usr/bin/pgrep httpd`
if [ "$WEB" != ""]
then
...
else
...
fi
if [ $# -ne 2 ]; then
echo "参数个数不正确"
exit 0 #0:正常退出,非0:不正常退出
fi
✔流程控制
for VAR in 1 2 3
do
echo $VAR
done
✔awk:分段提取内容
awk -F 分隔符 '命令'
awk -F: '$3==0 {print $1}' /etc/passwd #显示uid为0的用户名
awk -F: 'length($2)==0 {print $1}' /etc/shadow #显示密码为空的用户
✔case
read op
case $op in
C)
myfunc
;;
D)
echo "DD"
;;
*)
echo "default"
esac
myfunc(){
echo 1;
}
✔while until(false就执行)
num=1
while [ $num -le 10]
do
echo $num
num=`expr $num + 1`
done