shell——for&while&select

     本文通过实例来分析shell中forwhileselect的使用。

1、select表达式是bash的一重扩展应用,擅长于交互式场合,永和可以从一组不同的值中进行选中

select var in ... ; do

break ;

done

... now $var can be used ...

例如:用户根据设定值进行选则

echo "what is your favourite OS? "
select var in "LINUX" "Windows" "Unbutu" "Other" ; do
break;
done
echo "You have selected $var"

执行后:

[qatest@nmsg-42 ~]$ ./select.sh
what is your favourite OS?
1) LINUX
2) Gnu Hurd
3) fREE bsd
4) Other
#? 3
You have selected fREE bsd


2、在shell中可以使用while循环,只要测试表达式条件为真,则while循环将一直运行。关键字break用来跳出循环,而关键字continue则可以跳过一个循环的余下部分,直接跳到下一次循环中,while中为方括号[],且有空格

while ... ; do

...

done

例如:while和case结合

while :
do
    echo -n "input a letter: "
    read var
    case "$var" in
        [a-z]) echo "Lower case letter" ;;
        [A-Z]) echo "Upper case letter" ;;
        [0-9]) echo "Digit" ;;
        *) echo "other letter" ;;
esac
done

执行后:

[qatest@nmsg-42 ~]$ ./case.sh
input a letter: a
Lower case letter


例如:判断min和max,然后输出,#while循环注意为方括号[],且注意空格

min=1
max=10
while [ $min -le $max ]
do
    echo $min
    min=`expr $min + 1`
done


例如:#双括号形式,内部结构有点像C的语法,注意赋值:i=$(($i+1)), 即输出4的整数是多少,结果为4和8
i=1
while(($i<10))
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done


3、在shell中for会查看一个字符串列表(字符串用空格分割),并将其赋给一个变量

for var in ... ; do

...

done

例如:输出1到10,#数字段形式

for a in {1..10}
do
echo "a is $a"
done


例如:#详细列出(字符且项数不多)
for File in 1 2 3 4 5
do
    echo $File
done


例如:#对存在的文件进行循环,查找.sh文件,然后输出每个文件的名字
for shname in `ls *.sh`
do
          name=`echo "$shname" | awk -F. '{print $1}'` 

          name=`echo "$shname" | awk -F "|" '{print $1}' #显示扩展名`
          echo $name
done


例如:#查找循环(ls数据量太大的时候也可以用这种方法)
for shname in `find . -type f -name "*.sh"`
do
          name=`echo "$shname" | awk -F/ '{print $2}'`         
          echo $name
done


例如:#((语法循环--有点像C语法,但记得双括号,输出3、6、9
for((i=1;i<10;i++))
do
    if((i%3==0))
    then
        echo $i
        continue #如果用break,则只会输出3
    fi
done


例如:#seq形式 起始从1开始
for i in `seq 100`
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done


通过以上示例可以很好的看到select、while、for的使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值