Linux 判断&循环体


if  elseif else 判断
mytar.sh
#!/bin/sh
#操作命令后都要添加空格,对 [] 中添加conditions 也要添加空格
#!/bin/sh

 

if [ -z "${1}" ]; then
  echo "no file"
elif [ "${1##*.}" = "tar" ]; then
  echo "this is a tar file"
elif [ "${1##*.}" = "gz"  ]; then
  echo "this is not a gz file"
else
  echo "other file"
fi

//执行
./mytar.sh a.tar

 

 

myvar="3"
if [ "$myvar" != "3" ]    //用$输出要定义的变量 ${myvar}  字符比较须加上"" 因为$myvar 输出为 3
then
echo "$myvar"
else
echo "3"
fi

 

for 循环
for
do
……
done

 

while 循环

while [ condition ]
do
……
done

 

until 循环

until [ condition ]
do
……
done

 

 

for x in one two three four
do
echo $x
done  //输出结果 one  two three four  每一次循环 执行一次循环体 do …… done


//得到以a开头的文件 并判断其是否可写  如不可写就输出其权限  在echo 输出变量时 是使用命令 要将命令放于 $()中

for file in $(ls |grep ^a)
do
if [ -w "$file" ]
then
echo "$file can w"
else
echo "$(ls -ld $file)"
fi
done

 

 

shell的算术计算  $(())  别忘了是两个() 内层是计算  外层是$的输出
echo $((8*8))

 


read num    //读入数值
12


while [ $num != 9 ]  //如果读入数值不为 9 循环做计算
do
echo "$num"
  num=$(($num-1))
done

 

read num
12
until [ $num = 9 ]   //此处与while 相反  只要为真就会退出
do
echo "$num"
  num=$(($num-1))
done

 

 

case 判断结构体

read num
3
case "$num" in
      1)
      echo "1"
      ;;    //;; 如果==1 则执行 从)到;;的代码段
      2)
      echo "2"
      ;;
      *)
      echo "3"
      ;;
esac


函数 与 名称空间
//定义一方法体

readNum(){
case "$num" in
      1)
      echo "1"
      ;;
      2)
      echo "2"
      ;;
      *)
      echo "3"
      ;;
esac
}
num=1
readNum
  //执行输出 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值