shell循环

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值