Shell条件判断语句

条件判断语句

  • 条件判断语句
if [ 条件判断 ]
then
//命令
fi
if [ 条件判断 ]; then
条件成立执行,命令;
fi
  • 比较 a 和b的大小,并输出结果
#!/bin/bash
a=10
b=5
if [ $a -gt $b ]
        then
        echo "$a > $b"
        exit 0
fi
if [ $a -le $b ];then
        echo "$a <= $b"
        exit 0
fi

  • 以参数传入的方式调用 sh if2.sh 97 987
#!/bin/bash
x=$1
y=$2
if [ $x -gt $y ]
        then
        echo "yes: $x  >  $y "
        exit 0
fi
if [ $x -le $y  ]
        then
        echo  " $x  <  $y "
        exit 0
fi
  • 验证某个文件在目录下是否存在,若不存在则创建,目录不存在,也创建
#!/bin/bash
path=/home/hadoop/shell/ifDir2
if [ -e "$path/if3.sh" ]
        then
        echo "if3.sh is exits"
        exit 0
fi

if [ ! -e "$path/if3.sh" ]  
        then
        [ ! -d $path ]&& mkdir -p $path&&{
                echo "文件目录不存在,需要创建"
                cd $path
                touch if3.sh
                echo "if3.sh is touch success"
                exit 0
        }

        [ -d $path ]&&{
                echo "$path目录已经存在了"
                cd $path
                touch if3.sh
                exit 0
        }
]
fi
  • if 、else 的使用
    (判断该目录下的文件是否存在,不存在就创建)
#!/bin/bash
path="/home/hadoop/shell/ifDir2"
if [  -e "$path/a.txt" ]; then
        echo "这个文件 a.txt存在"
        exit 0
else
        if [ !  -d $path ];then
                echo "$path这个文件夹不存在"
                mkdir -p $path
                echo "创建文件夹成功 $path"
        fi
        cd $path
        touch a.txt
        echo " 创建文件a.txt成功  "
        exit 0
 fi
  • if、 elif、else 判断语句的用法
!/bin/bash
read -p "请输入两个参数 a , b,用于比较两个值的大小: " a b
if [ $a -gt $b ]; then
        echo  "$a > $b "
        exit 0
elif [ $a -eq $b ]; then
        echo " $a == $b "
        exit 0
else 
        echo " $a < $b "
        exit 0
fi

case结构条件语句

case 变量名称  in 
"值1")
程序段
;;
"值2")
程序段
;;
*)                                      //都不满足时执行,类似java中default
exit 1  
;;
esac
  • 输入数字 1-7 输出对应的星期几
#!/bin/bash
read -p "pleas input a num in [ 1 - 7  ]" ww
case $ww in
1)
  echo  "Mon"
  ;;
2)
  echo  "Tue"
        ;;
3) echo "Wed"
        ;;
4) echo "Thu"
        ;;
5) echo "Fir "
        ;;
[6-7])
   echo  " weekend  "
;;
*)
  echo "请输入1-7的数字"
  exit 1
esac
exit 0
  • 函数 使用 $1 来取传递的值,注意,这里指的值不是执行脚本时,传递的值
#!/bin/bash
read -p "pleas input a num in [ 1 - 7  ]" ww
print(){
 echo "传递的参数是 $1"
}
case $ww in
1)
  print  "Mon"
  ;;
2)
   print  "Tue"
        ;;
3) print "Wed"
        ;;
4) print "Thu"
        ;;
5) print "Fir "
        ;;
[6-7])
   print  " weekend  "
;;
*)
  print "请输入1-7的数字"
  exit 1
esac
exit 0
  • sh -x xxx.sh 用于脚本的调试
  • sh -n xxx.sh 用于脚本的语法错误检测
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值