Shell通过简单的例子理解

https://github.com/jackfrued/Python-100-Days/blob/master/Day31-35/31-35.%E7%8E%A9%E8%BD%ACLinux%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md

——————————————————————————————————————————————

例子1:输入两个整数m和n,计算从m到n的整数求和的结果

#!/usr/bin/bash
printf 'm = '    #输入
read m           #读取
printf 'n = '
read n
a=$m             #$xxx 参数
sum=0
while [ $a -le $n ]
do
    sum=$[ sum + a ]
    a=$[ a + 1 ]
done
echo '结果: '$sum #输出

数值测试

-eq 等于则为真

-ne 不等于则为真

-gt 大于则为真

-ge 大于等于则为真

-lt 小于则为真

-le 小于等于则为真

num1=100
num2=100
if test $[num1] -eq $[num2]
then
         echo '两个数相等!'
else
         echo '两个数不相等!'
fi

字符串测试

= 等于则为真

!= 不相等则为真

-z字符串 字符串的长度为零则为真

-n字符串 字符串的长度不为零则为真

num1="test"
num2="test2"
if test $num1 = $num2
then
         echo '两个字符串相等!'
else
         echo '两个字符串不相等!'
fi

文件测试

-e文件名 如果文件存在则为真

-r文件名 如果文件存在且可读则为真

-w文件名 如果文件存在且可写则为真

-x文件名 如果文件存在且可执行则为真

-s文件名 如果文件存在且至少有一个字符则为真

-d文件名 如果文件存在且为目录则为真

-f文件名 如果文件存在且为普通文件则为真

-c文件名 如果文件存在且为字符型特殊文件则为真

-b文件名 如果文件存在且为块文件则为真

cd /bin
if test -e ./bash
then
               echo '文件已经存在'

else
               echo '文件不存在'
fi

或与非

Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低

例子2:自动创建文件夹和指定数量的文件

#!/usr/bin/bash
printf '输入文件名: '
read file
printf '输入文件数量(<1000): '
read num
if [ $num -ge 1000 ]
then
    echo '文件数量不能超过1000'
else
    if [ -e $dir -a -d $dir ]      #存在dir并且dir是目录
    then
        rm -rf $dir
    else
        if [ -e $dir -a -f $dir ]  #存在dir并且dir是普通文件
        then
            rm -f $dir
        fi
    fi
    mkdir -p $dir         #-p递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
    index=1
    while [ $index -le $num ]     
    do
        if [ $index -lt 10 ]
        then
            pre='00'
        elif [ $index -lt 100 ]
        then
            pre='0'
        else
            pre=''
        fi
        touch $dir'/'$file'_'$pre$index
        index=$[ index + 1 ]
    done
fi

参考:https://www.cnblogs.com/hudunkey/p/10279778.html

猜你喜欢

转载自www.cnblogs.com/Jasper-changing/p/12517611.html