`
scm002
  • 浏览: 317022 次
社区版块
存档分类
最新评论

shell select的使用

 
阅读更多

select 表达式是一种bash的扩展应用,动作包括:
   (1)、自动用1,2,3,4列出菜单 (没有echo指令,自动显示菜单
   (2)、自动read输入选择 (没有 read指令,自动输入
   (3)、赋值给变量  (没有赋值指令,自动输入数字后,赋值字符串给变量

1、   select典型例子

[macg@machome ~]$ vi test.sh

echo "What is your favourite OS?"

select var in "Linux" "Gnu Hurd" "Free BSD" "Other";
do
break               select本身就是一个循环,break是当选择后,就跳出循环
done

echo "You have selected $var"
[macg@machome ~]$ sh test.sh

What is your favourite OS?

1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 2

You have selected Gnu Hurd   Select输入选择是数字,但变量值却是字符串



2、虽然select本身就是循环,但不建议用他的循环 ,因为select虽然循环却不再显示菜单,只循环输入所以seleckt 语句干脆直接用break,只执行一次,在其上另配while循环

while echo "display current netconfig:"
do

select vi in "ifconfig -a" "hosts" "netmasks" "quit"
do

case $vi in      虽然输入是1,2,3,4,5,但case变量输入值却是菜单项(字符串)
"ifconfig -a")  /sbin/ifconfig -a;;
"hosts") more hosts;;
"netmasks") more netmasks;;
"quit") exit 0;;
*) continue;;
esac

break   
done

done 
$ sh test
display current netconfig
1) ifconfig -a      3) netmasks        
2) hosts            4) quit 



3、select空格出错的问题
问题:

下面的代码运行出错,如果package name那没有空格就没有问题
select var in "All" "package name"     do
      case $var in
      All)
        break;;
      package name)
        break;;
       *);;
      esac
   done 

解答:
case语句的语法问题,跟变量赋值时一个道理 case里面的每一个分支变量中要想将空格作为字符串的一部分,就得加上引号 这样就好了:  select var in "All" "package name"
  do
      case $var in
      All)
        break;;
      "package name")
        break;;
       *);;
      esac
   done
分享到:
评论

相关推荐

    linux shell 编程中select 命令的用法

    在Linux Shell编程中,`select`命令是一种非常实用的交互式菜单构建工具,它源自于Korn Shell(ksh),并被广泛应用于bash等其他Shell环境中。`select`命令允许用户从一系列选项中进行选择,这在创建用户友好的脚本...

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...

    shell中select…in循环语句

    select in 是 Shell 独有的一种循环,非常适合终端(Terminal)这样的交互场景,C语言、C++、Java、Python、C# 等其它编程语言中是没有的 Shell select in 循环的用法如下: select variable in value_list do ...

    Bash Shell中的select命令简单使用示例

    在Bash Shell编程中,`select`命令是一个非常实用的工具,主要用于实现交互式的菜单选择功能,常用于脚本编写,提升用户与脚本的交互体验。本文将深入讲解`select`命令的基本用法和一个简单的示例。 首先,了解`...

    SQLPLUS在Bash_shell的使用

    【SQLPLUS在Bash_shell的使用】 SQLPLUS是Oracle数据库管理系统提供的一款强大的SQL命令行工具,它允许用户在命令行界面执行SQL语句、PL/SQL块以及进行数据库管理任务。在Bash Shell环境下,我们可以利用Shell脚...

    shell_txt_to_csv

    描述: 使用 shell script 将文本文件转换为 CSV 文件,同时实现数据的处理和过滤。 标签: shell, txt, csv 知识点: 1. 文本处理: 使用 sed 命令对文本文件进行处理,例如删除逗号、替换字符串等操作。 2. 数据...

    Linux下Shell从入门到精通完整版视频.zip

    8.Shell编程之Case语句及Select综合应用_0.mp4 9.Shell编程之函数及案例分析.mp4 10.Linux下深入编程之函数及数组编程.mp4 11.Shell编程之SED及GREP综合讲解.mp4 12.Shell编程四剑客及案例详解.mp4 13.Linux下自动化...

    select命令用法详解

    在Shell编程中,`select`命令是一种特殊的循环结构,它主要用于构建菜单式交互界面,方便用户通过简单的数字或字母选择来执行不同的命令或操作。与传统的`for`循环不同,`select`命令更加注重用户的交互体验。 ####...

    Shell脚本专家指南Shell编程基础.pdf

    - `select` 语句:菜单式的选择结构。 7. **环境变量和位置参数**: - 环境变量:由系统或父进程设置的变量,可以通过 `export` 命令设置。 - 位置参数:脚本启动时传入的参数,如 `$1`, `$2` 等。 8. **字符串...

    shell从入门到精通

    在Linux系统中,最常用的是bash(Bourne Again SHell),它是在UNIX系统中广泛使用的sh(Bourne Shell)的基础上发展起来的,并且成为了Linux系统的标准Shell。 学习Shell脚本的基础知识是编写Shell脚本的前提。...

    shell脚本编程.pdf

    在嵌入式Linux系统中,Shell脚本的使用同样广泛,尤其适合于硬件资源有限的系统,因为它不需要额外的开发和运行环境。 首先,Shell脚本语言是一种解释型语言,将常用的Linux命令存储在文件中,由Shell读取并顺序...

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    这个脚本使用了while循环和select语句来实现用户交互和查询的功能。 这六个SHELL脚本练习涵盖了循环、条件语句、函数、参数处理、文件操作等多方面的SHELL编程技术,可以帮助读者更好地理解和掌握SHELL脚本编程的...

    SHELL编程学习21天

    `break`, `continue`控制循环的执行,`case`语句提供多路选择,`select`则可用于交互式菜单。 **10. 文件操作** 学会如何创建、删除、移动和复制文件是Shell编程的基础。例如,`touch`, `rm`, `mv`, `cp`等命令。 ...

    京峰教育Linux Shell基础编程

    本资源摘要信息涵盖了 Linux Shell 基础编程的知识点,包括 Shell 编程入门、变量、If、While、For、Case、Select 基本语句案例演练、Find、Grep、Awk、Sed 四剑客深度剖析等。 Shell 编程概述 Shell 编程是 Linux...

    shell脚本实现mysql从原表到历史表数据迁移

    这里我们关注的是使用Shell脚本来实现MySQL从原表到历史表的数据迁移。这种自动化的方法可以帮助我们高效、准确地处理大量数据,同时减少人为错误。 首先,让我们深入理解`shell`脚本。Shell是Linux和Unix系统中的...

    Shell脚本学习笔记

    6.7 select命令使用 119 第7章 sed、gawk介绍与正则表达式 120 7.1 sed编辑器 120 7.1.1 在命令行中定义编辑器命令 120 7.1.2 在命令行中使用多个编辑器命令 121 7.1.3 从文件读取编辑器命令 121 7.2 gawk程序 122 ...

Global site tag (gtag.js) - Google Analytics