awk -F 's=0{} BEGIN{for(i=1;i<=100;i++){s+=i}print s}'

if双分支
awk -F: 'BEGIN{i=0;j=0}{if($3<=500){i++}else{j++}}END{print i,j}'  /etc/passwd

for循环
seq  5  生成序列1-5
awk 'BEGIN{for(i=1;i<5;i++){print i}}'

for NUM in 1 2 3
for NUM in `seq 10`

for  NUM in 1 2 3  / `seq 10`/ `seq 1 2 10` 开始,间隔,结尾
do
 echo $NUM
done

for ((A=1;A<10;A++))
do
  echo $A
done

例如
#!/bin/bash
for ((A=0;A<50;A++))
do
  ping 172.25.254.$A -c1 -w1>/dev/null&&echo $A up ||echo $A error
done

for i in `seq 60`
for a in {1..60}

倒计时关机

#!/bin/bash
for ((A=10;A>0;A--))
do
  echo -n " TIME $A " 
  echo -ne "\r"  #替换上面的
        sleep 1 
done

时秒倒计时
#!/bin/bash
[ $2 -gt 60 ]&&echo second is error&&exit 1
time=$1*60+$2
for((A=$time;A>0;A--))
do
  echo -n " TIME $[$A/60]:$[$A%60] "
  echo -ne "\r"
  sleep 1
done

while 循环

uptime 开机时间

#!/bin/bash
while true
do
     uptime
     sleep 2
dome

创建用户
#!/bin/bash
A=20
B=westos
while [ $A -gt 0 ]
do
  useradd $B$A  &>/dev/null
  echo "123456" |passwd --stdin $B$A &>/dev/null
  echo $B$A passwd is 123456
  let A-=1   ((A--))  $[A--]
done

删除用户
#!/bin/bash
A=20
B=westos
while [ $A -gt 0 ]
do
  userdel -r $B$A    &>/dev/null
  echo "123456" |passwd --stdin $B$A &>/dev/null
  echo $B$A passwd is 123456
  let A-=1   ((A--))  $[A--]
done

嵌套循环
for (())
do
    echo  1
    for (())
    do
        echo 2
    done
done

打印乘法表

#!/bin/bash
for ((a=1;a<10;a++))
do
        for ((b=1;b<a+1;b++))
        do
        echo -ne  "$b*$a=$[$a*$b]\t" 
        done
        echo 
done

或者 for i in `seq 9`
     do  for j in `i`
     do
     done
     done  

其中 echo -n  不换行 里面的\t 为自动对齐table
echo -e  转义
b<a+1 循环次数
$[]
$(())

if-else用法

if ..; then
  动作
fi

#!/bin/bash
if [ -e /etc/passwd ];then
  echo  sasa
fi

#!/bin/bash
if [ -e $1 ];then
  echo  sasa
elif [ ! -e $1 ];then
  echo 22
fi

#!/bin/bash
if [ -e $1 ];then
  echo  sasa
else
  echo 22
fi

字符串比较用== $1
-lt要用比较数字 

case  语句

#!/bin/bash
case $1 in
student|kiosk|linux|westos)  #这些情况
    echo "welcome,$1"
    ;;
    *)             #其他情况
    echo "sorry!"
    ;;
esac