Linux基础9-23 day10

字符测试

双目测试

比较两个字符串

  • ==   等于,等值比较
  • !=   不等于

单目测试 

  • -n $string   判断字符串是否为空,不空为真
  • -z $string   字符串是否为空,空(包括空格)为真
  • -e 文件名   检测文件是否存在,若存在,则为真
  • -d 文件名   检查文件是否为目录(文件夹)文件,如果使,则为真
  • -r 文件名   检查该文件是否有可读

文件类型

  • -   一般文件
  • d   目录文件
  • l    套接字文件 

 案例:用户交互输入一个文件,判断该文件是否是1.txt文件,是输出yes,不是输出no

#!/bin/bash

read -p "write a filename:"  file

if [ -e $file ];then

   if echo "$file" | grep "/1.txt"$;then

       echo "yes"

   else

       if [ $file == "1.txt" ];then

       echo "yes"

   else

       echo "no"

   fi

else

   echo "no such"

fi

for循环 

脚本执行流程

  • 顺序执行:默认逐条执行
  • 符合条件的给予执行
  • 循环执行:将同一段反复执行   for          while

for格式 

for 变量名 in 列表

do

    循环体(要执行的代码块)

done】

生成列表的方式 

  • for num in 1 2 3 4 5 aaa bbb ccc
  • for num in in /bin/*;
  • for num in {1..10};
  • for num in `seq 1 2 10`;   10以内的奇数
  • for num in `命令`;

四则运算 

  • +
  • -
  • *
  • /
  • %

案例:

1. 判断 /tmp/a 目录是否存在,如果不存在,则创建该目录;
2. 存在:
1 )在其目录下创建文件 file1 file2 10
for num in `seq 1 2 10`;
for num in ` 命令 ` 2 )将 1-5 的属主和属组改为 tom
3 )将 6-10 的属主和属组改为 abc666

 #!/bin/bash

#执行两次的循环(当创建目录a后,第二次执行已存在的代码)

for zhixingcishu in 1 2;

do

    if [ -d /tmp/a ];then

#在/tmp/a下创建file1..file10的文件

             cd /tmp/a

             touch file{1..10}

#创建tom和jerry的用户和用户组

             useradd tom &>/dev/null

             useradd jerry &>/dev/null

#将file1-5的属主和属组改为tom

             for numTom in 1 2 3 4 5;

             do 

                  chown tom.tom file$numTom

             done

#将file6-10的属主和属组改为jerry

             for numJerry in 6 7 8 9 10;

             do

                 chown jerry.jerry file$numJerry

             done

             exit 0

else

#在/tmp下创建目录文件a

             mkdir -p /tmp/a

             sleep 3

     fi

done

案例:

1. 测试 192.168.100.xx 所有主机是否在线
2. 在线,显示 up
3. 不显现,显示 down

 #!/bin/bash

for num in {1..255}

do

    ping -c1 -w1 192.168.100.$num &>/dev/null

    if [ $? -eq 0 ];then

          echo "192.168.100.$num is up"

    else

          echo "192.168.100.$num is down"

    fi

done

案例:新建用户tuser1...tuser10,计算他们的uid之和

#!/bin/bash

sum=0

for num in {1..10}

do

    useradd tuser$num

    uid=`id -u tuser$num`

    sum=$[$uid+$sum] 

done

echo $sum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值