day 8

if 判断文件、目录属性

  [-f file] 判断是否普通文件且存在

  [ -d file]判断是否目录且存在

  [ -e file ]判断文件或目录是否存在

  [ -r file ] 判断文件是否可读

  [ -w file ]判断是否可写

  [ -x file ] 判断文件是否可执行

if 判断的特殊用法

  if [ -z "$a"]表示当变量a的值为空时执行操作

  if [ -n “$a"] 当变量a的值不为空时(-n与-z时注意,如果是变量需要使用双引号,文件不需要)

  if 可加命令当作判断条件    if grep -q '123' 1.txt;then 表示如果1.txt中包含‘123’的行时会执行操作

    if [! -e file ];then 表示文件不存在时会执行操作

  if (($a<1));then 等同于 if [$a -lt 1] ; then

  [ ] 中不能使用<,>,!=,>=,<=

 

case判断

  格式case  变量名 in

      value1)

        command

        ;;

      value2)

        command

        ;;

        esac

  再case程序中,可以再条件中使用|,表示或

  示例:

[root@iZwz96qzfgxh9l2rk7esxnZ shell]# vim case.sh

[root@iZwz96qzfgxh9l2rk7esxnZ shell]# cat case.sh

#!/bin/bash read -p "Please input a number: " n

if [ -z "$n" ]

then    

echo "Please input a number."    

exit 1

fi

n1=`echo $n|sed 's/[0-9]//g'`

if [ -n "$n1" ]

then  

echo "Please input a number."

exit 1

fi

if [ $n -lt 60 ] && [ $n -ge 0 ]

then     tag=1

elif [ $n -ge 60 ] && [ $n -lt 80 ]

then     tag=2

elif [ $n -ge 80 ]  && [ $n -lt 90 ]

then     tag=3

elif [ $n -ge 90 ] && [ $n -le 100 ]

then    

tag=4

else     tag=0

fi

case $tag in    

1)

   echo "not ok"        

  ;;    

2)        

   echo "ok"        

   ;;    

3)        

   echo "ook"        

   ;;    

4)        

  echo "oook"        

  ;;    

*)        

   echo "The number range is 0-100."        

  ;;

esac

[root@iZwz96qzfgxh9l2rk7esxnZ shell]# sh case.sh

Please input a number: 80

ook

[root@iZwz96qzfgxh9l2rk7esxnZ shell]# sh case.sh

Please input a number: 123

The number range is 0-100.

[root@iZwz96qzfgxh9l2rk7esxnZ shell]#

 

 

for  循环

  语法: for  变量名 in 条件;do ...; done

[root@iZwz96qzfgxh9l2rk7esxnZ shell]# cat for.sh
#!/bin/bash
sum=0
for i in `seq 1 100`
do
   sum=$[$sum+$i]
done
echo $sum
[root@iZwz96qzfgxh9l2rk7esxnZ shell]# sh for.sh
5050
[root@iZwz96qzfgxh9l2rk7esxnZ shell]#

 

 

 

 

 

  需要注意for循环内空格回车都作为分隔符

posted @ 2018-12-26 00:39  依哈  阅读(163)  评论(0编辑  收藏  举报