shell中的select循环使用

select单独使用

cat select01.sh 
#!/bin/bash
echo "Which car do you prefer?"
select CAR in Benz Audi VolksWagen
do
        break
done
echo "You chose $CAR"

运行结果

sh select01.sh 
Which car do you prefer?
1) Benz
2) Audi
3) VolksWagen
#? 1
You chose Benz

select和case结合使用

cat select02.sh 
#!/bin/bash
select DAY in Mon Tue Wed Thu Fri Sat Sun
do
        case $DAY in
        Mon)
                echo "Today is Monday";;
        Tue)
                echo "Today is Tuesday";;
        Wed)
                echo "Today is Wednesday";;
        Thu)
                echo "Today is Thursday";;
        Fri)
                echo "Today is Friday";;
        Sat|Sun)
                echo "You can have a rest today";;
        *)
                echo "Unknown input ,exit now" && break;;
        esac
done

select结合case使用

sh select02.sh 
1) Mon
2) Tue
3) Wed
4) Thu
5) Fri
6) Sat
7) Sun
#? 1
Today is Monday
#? 6
You can have a rest today
#? 8
Unknown input ,exit now
时间: 2024-10-18 13:03:14

shell中的select循环使用的相关文章

  shell中的select用法

select也是循环的一种,它比较适合用在用户选择的情况下.比如,我们有一个这样的需求,运行脚本后,让用户去选择数字,选择1,会运行w命令,选择2运行top命令,选择3运行free命令,选择4退出.脚本这样实现: #!/bin/bash echo "Please chose a number, 1: run w, 2: run top, 3: run free, 4: quit" echo select command in w top free quit do case $comma

Bash shell 中,select 使用举例

Bash shell 中,select 使用举例 一 背景 在最近的运维工作中,写了很多脚本,在写这些脚本时发现了一些高效的用法,现将 select 的用法简单介绍一下. 二 使用举例 select 表达式是 bash 的一种扩展应用,擅长于交互式场合.用户可以从一组不同的值中进行选择.格式如下: select var in ... ; do ... done 2.1 单独使用 select #!/bin/bash Hostname=( 'host1' 'host2' 'host3' ) sel

三、Shell中分支与循环结构

if结构的语法格式 单分支结构 if <条件表达式>   then     指令 fi if <条件表达式>; then     指令 fi 双分支结构 if <条件表达式>; then     指令1 else     指令2 fi 多分支结构 if <条件表达式>; then     指令1 elif     指令2 elif     指令3 fi shell中的函数   shell函数是shell脚本中由命令集和语句组成的代码块,这个代码块可以被其他脚

shell中使用while循环ssh的注意事项

需要读取一个文本,次文本每一行包含一个IP在while循环中使用ssh,但ssh完第一行后就退出了,如何避免自动读取一行就跳出while循环,此文将详细解释其原因.      最近在写一个自动更新的shell,可是发现如果在使用while循环从一个文件中读取ip地址,然后访问就只能读取第一行纪录.代码如下: while read LINE do echo *******************************************$LINE ssh 192.168.10.233 ls

shell中使用while循环ssh时只循环第一行的问题解决

最近在写一个shell脚本,本想使用for循环来读取文件里面的内容,可是发现文件里每一行都有空格的,明显用for循环行不通过,我的目的是想一行一行读取文件内容,于是果断使用while循环来实现,可问题来了,当ssh完第一行后就退出了,后面都没有执行成功,如何避免自动读取一行就跳出while循环,此文将详细解释其原因. 文件内容如下:[[email protected]_hai~]#cat 2.txt scjz 2144 10.16.100.113  89scjz 2144 10.16.100.1

shell学习之select循环

学习循环,见了很多的for,while,或者until,而select用的比较少,这里是稍微总结下select这个循环. 基本结构: select  VALUE  in  LIST do COMMAND done 而现实出来的结构大概为值前有个数字,选择的那个数字,是$REPLY的值,这里不懂没事,可以继续看下面的程序.$PS3变量相当于shell的默认提示符,默认为空,可以配合select使用. #!/bin/bash #save  $PS3 oPS3=$PS3 PS3="请选择喜欢的水果q退

shell中的for循环出现语法错误(syntax error: bad for loop variable)

出现这种错误是因为有些linux系统默认会使用ash进行编译shell脚本,我的机器就是这样,但是我写的脚本是应该用bash执行的.虽然我在开头注明了#!/bin/bash,好像它还是默认去找了ash,真是让人无奈.上网搜索了一下,找到两种解决方案:1.修改脚本 2.修改系统默认执行shell的工具 第一种的具体做法就是,原来的for循环类似这种 for(( i=1; i<3; i++)),改成类似这种的:for  i in `seq 1000`,这是从一个网友的博客上抄来的,我不知道是否等价.

shell中while只循环一次的原因

一,事件描述: 1,#!/bin/bash cat  ../ip.txt | while read LINE do echo $LINE ssh $LINE "ls" done 结果循环一次后退出.原因是while中使用重定向机制,文件中的信息全部读入并重定向给了整个while语句,ssh语句正好读取输入中的所有东西,导致调用玩ssh语句后,输入缓存中已经都被读完了,当read语句再读的时候读不到一纪录,循环退出. 2,#!/bin/bash cat  ../ip.txt | whil

shell中的while循环实例

1.利用while循环计算1到100的和: 示例代码1: #!/bin/bashi=1sum=0while [ $i -le 100 ]do  let sum=sum+$i  let i++done echo $sum 示例代码2:利用while循环计算1到100之间所有奇数之和 #!/bin/bashi=1sum=0while [ $i -le 100 ]do  let sum=sum+$i  let i+=2done echo $sum 示例代码3:利用while循环计算1到100之间所有偶