day12 bash中的if、for

bash

 1 变量bash
 2     定义:x=1
 3     作用:记录状态
 4     规则:字母开头,后面可以接字母、数字、下划线
 5         export args:将变量定义为全局变量
 6         $$[]:括号中可以进行简单的数学整数运算,可以用echo打印出输出的结果
 7         (()):两个括号中可以进行逻辑运算
 8         $?:查看上次命令执行结果,非零表示失败
 9         ==:判断
10         !=:不等于
11         &&:逻辑与
12         ||:逻辑或
13         ((x+=1))/x=$[$x+1]:x+1的运算
14         expr 1 + 2:有空格,像当与1+2
15         echo 'scale=2;1/3'|bc -l:取1/3的两位小数
16         echo 'scale=2;1/3'|bc -l|cut -d'.' -f2:取两位小数,用.将它分割,取第二部分
17     test向当与[  ]有空格:
18         中间加 -a and
19                -o or
20                 = 测试左右字符串是否为空
21                != 不等于
22               -eq 判断整数是否相等
23               -ne 不相等
24                -b 后面加文件名,判断文件是否存在且为块设备
25                -d 后面加文件名,判断文件是否为文件
26                -e 后面加文件名,判断文件是否为存在
27                -f 后面加文件名,判断文件是否为存在且为普通文件
28                -h 后面加文件名,判断文件是否为链接文件
29                
30                
31         前面加 -n 不为空即正确
32                -z 长度为零即为空
33         

if判断

1 #!/bin/bash
2 read -d 'username:  ' user
3 read -d 'paddword:  ' password
4 
5 if [ $user = 'alex' -a $password = 'alex' ];then
6     echo 'login successful'
7 fi

while循环

 1 #!/bin/bash
 2 
 3 oldboy_age=57
 4 
 5 while :                       # :表示真
 6     do
 7         read -p 'age: ' age
 8 
 9         if [ -z $age ]
10             then
11                 echo 'None!!'
12                 continue
13             fi
14 
15         if [ $age -eq $oldboy_age ]
16             then
17                 echo 'Done'
18                 break
19         elif [ $age -lt $oldboy_age ]
20             then
21                 echo 'Too young'
22         elif [ $age -gt $oldboy_age ]
23             then
24                 echo 'Too old'
25         else
26                 echo 'Wrong!!'
27         fi
28     done

for循环

 1 for 循环形式 1
 2 #!/bin/bash
 3 
 4 for i in {1..5}
 5     do
 6         echo $i
 7     done
 8 
 9 =========================================================
10 ping -c1 192.168..   ping 一次
11 ping -c1 192.168.. &> /dev/null     不在终端显示
12 tail -f /tmp/..    动态查看地址
13 
14 
15 for i in $(ls)
16 do
17     # 依次打印出目录
18 done
19 ========================================================
20 
21 bash for 循环形式 2
22 #!/bin/bash
23 
24 for ((i=1;i<=9;i++))
25 do
26     echo $i
27 done
28 =======================================================
29 打印格式
30 echo -n ''  不换行

检测IP

 1 ping IP
 2 #!/bin/bash
 3 
 4 ip_head='192.168.16.'                     # 设置ip前面三位
 5 
 6 for ((i=1;i<=20;i++))                     # 循环20次,因为有点慢,所以循环少点
 7 do                                        # 循环开头标志
 8     echo "$ip_head$i"                     # 将ip前面三位和i拼接起来
 9     ping -c1 "$ip_head$i" &> /dev/null    # ping IP,将打印结果丢弃
10     if [ $? -ne 0 ]                       # 查看上面ping的结果,是否成功
11     then                                  # if判断开头的标志
12         echo 'sucessful'                  # 如果ping不通,则打印成功,表示可用
13     fi                                    # if判断的结尾标志
14 done

99乘法表

#!/bin/bash

for((i=1;i<=9;i++))                     # 外循环9次
do
    for((j=1;j<=i;j++))                 # 内循环为1-9次
    do
        echo -n "$j*$i=$[j*i] "         # 列式子,-n表示不回车,后面用空格分割
    done
    echo
done

模拟终端控制

 1 #!/bin/bash
 2 
 3 while :                          # :表示真
 4 do
 5     read -p '>>' cmd             # 获取一个输入
 6     if [[ -z $cmd ]]             # 如果为空,执行下面then
 7     then
 8         continue                 # 进入下一次循环
 9     elif [[ $cmd='quit' ]]       # 如果cmd的值为quit
10     then
11         break                    # 跳出本次循环
12     fi                           
13     $cmd                         # 执行变量cmd里面的命令
14 done
原文地址:https://www.cnblogs.com/alwaysInMe/p/6945582.html