1、case语句
week=1
case $week in
1)
echo '周一'
;;
2)
echo '周二'
;;
3)
echo '周三'
;;
esac
自动获取日期
week='date +%w'
2、循环控制
num=3
while [ $num -gt 0 ]
do
echo $num
num=$(($num-1))
done
echo $num
for循环只支持for in 循环
for i in ` cat /etc/passwd |awk -F: '{print $1}'`
do
echo $1
mkdir -p users/$i
done
例子
/etc/passwd中的用户含有/bin/bash的一般是可登陆用户,含有nologin的是不可登陆用户
#!/bin/bash
DIR="/opt"
LMT=100
ValidUsers=`grep "/bin/bash" /etc/passwd |cut -d ":" -f 1`
for UserName in $ValidUsers
do
Num=`find $DIR -user $UserName |wc -l`
if [$Num -gt $LMT ];then
echo "$UserName bave $Num files."
fi
done
for((i=0;i<10;i++))
do
echo $i
sleep 1
if [$i -eq 5 ];then
continue
else
echo $i
fi
done
shift迁移语句:用于迁移位置变量
$*代表全部参数
$#代表参数个数
tot=1
while [ $# -gt 0 ]
do
tot=$(($tot*$1))
shift
done
echo $tot
3、定义新函数
function 函数名 {
命令序列
}
或者
函数名(){
命令序列
}
调用已定义的函数
函数名
向函数内传递参数
函数名 参数1 参数2 ...
function add(){
num=$1
tot=0
for((i=1;i<=$num;i++))
do
tot=$(($tot+$i))
done
echo $tot
}
add 3