shell下的while和if

if 语句格式

if  条件;then

 Command

else

 Command

fi        别忘了这个结尾

If语句忘了结尾fi

test.sh: line 14: syntax error: unexpected end of fi     if 的三种条件表达式

 

当出现2次以上的判断时

if 条件;then

条件满足输出

elif

    条件满足输出

elif

条件满足输出

else

    以上条件都不满足输出

fi

 

循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件

while 条件

do

   需要执行的过程

done   #返回条件进行判定

 

其中有两个停止命令 break和continue

break是从while直接停止循环 进行while之后的事情

continue是从while现在运行的这一循环停止,从while开始新的循环

 

for循环

 for 变量  in {1..200}  #变量从1开始循环到200

 do

   循环体内执行的事情

done       #结束

 

循环语句和判断语句的3个简单例子

用循环写一个9*9乘法口诀

for ((i=1;i<=9;i++))
do
       for  ((j=1;j<=i;j++))
       do
       echo -n "$i*$j=$[j*i] "
       done      
    echo 
done

用循环写一个网段内可用ip

#!/bin/bash
i=1
while ((i<=253))
do
   ping -c1 192.168.16.$i >> /dev/null
   if  (( $? !=  0 ));then
     echo "192.168.16.$i">> /test/ping
     echo "good ping"
   fi
   i+=1 
done
      

用循环和判断模拟一个cmd

#!/bin/bash
username='wyd'
passwd='1234'
hhh=true

while $hhh
do
    read -p 'please int username:  '  user
    read -p 'please int passwd:  ' pswd
    if [[ $username == $user ]] && [[ $passwd == $pswd ]];then
        echo ' login right ' 
        while $hhh
        do
           read -p '>>'  cmd
           if [[ $cmd = 'quit' ]];then
            hhh=false
            break
           else 
            $cmd
           fi 
        done
    fi
done                  

 

posted @ 2017-06-05 18:58  一锅煮不下  阅读(2100)  评论(0编辑  收藏  举报