美文网首页
Linux中CASE函数完成功能选择脚本

Linux中CASE函数完成功能选择脚本

作者: 刘小白DOER | 来源:发表于2021-02-04 21:17 被阅读0次

    今天看了别人用case函数写的shell脚本,远程到系统内的服务器执行检查指令,每一个选项对应一个功能,提供选择界面来选择不同的功能。于是笔者将以前看到过的有case函数的shell脚本重新翻出来整理一下一起分享,特别是/etc/init.d目录下来的脚本服务,可以通过service dump start/stop/restart来完成服务的启停,当然也可以参考mysql、network等等的脚本。

1、CASE简单使用

下面的为test.sh脚本,执行./test.sh start就会执行脚本里面的start函数,$1是读取后面的第一个参数。 每个模式必须以右括号 ) 结束,双分号 ;; 表示命令序列结束。“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。

#!/bin/bash

case "$1" in 

start)

echo "begin start do someting"

;;

stop)

echo "begin stop do someting"

;;

restart)

echo "begin restart do someting"

;;

*)

;;

esac

2、Service服务中的CASE

    脚本做成服务放置在/etc/init.d目录下,可以参考笔者以前的文章——linux中/etc/init.d设置开机启动。dump服务,脚本把进程包装成了一个服务, 定义了它在启动、 重启和终止时的具体行为。这个脚笔者觉得很典型值得借鉴,同时执行exit可使shell以指定的状态值退出,状态值0代表执行成功,其他值代表执行失败。

case "$1" in

      start)

          start

          exit 0

      ;;

      stop)

          stop

          exit 0

      ;;

      reload|restart|force-reload)

          stop

          start

          exit 0

      ;;

      **)

          echo "Usage: $0 {start|stop|reload}" 1>&2

          exit 1

      ;;

esac

3、CASE与WHILE 结合完成选择功能

#!/bin/bash

your_choice(){

case "$1" in 

1)

echo "begin start do someting"

;;

2)

echo "begin stop do someting"

;;

3)

echo "begin restart do someting"

;;

4)

echo "bye"

exit 0

;;

*)

echo "wrong chioce"

;;

esac

}

while true

do

cat << EOF

***********************************

1、start

2、stop

3、restart

4、exit

***********************************

EOF

read -p "please enter your choice:" choice

your_choice $choice

done

read -p 后面跟提示信息,即在输入前打印提示信息。-n 后跟一个数字,定义输入文本的长度,比如这里可以写成read -n1 "please enter your choice:" choice,这样输入选择的一个字符后就可以不需要按enter键。输入的字符数目达到预定数目1时,自动退出,并将输入的数据赋值给变量choice。

cat << EOF     EOF  , 区别与echo只打印一行,可以打印一大段文字。 EOF是“end of file”,在这里没有特殊的含义,你可以使用FRE或OOO等。  

相关文章

  • Linux中CASE函数完成功能选择脚本

    今天看了别人用case函数写的shell脚本,远程到系统内的服务器执行检查指令,每一个选项对应一个功能,提供选...

  • SQL的case when 用法

    Case具有两种格式。简单Case函数和Case搜索函数。 这两种方式,可以实现相同的功能。简单Case函数的写法...

  • SQL中的case when then else end用法

    Case具有两种格式。简单Case函数和Case搜索函数。 这两种方式,可以实现相同的功能。简单Case函数的写法...

  • shell(六)

    Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的...

  • 13. Shell 函数

    函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式...

  • Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。 shell中函数的定义格式如下: ...

  • Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。 shell中函数的定义格式如下: ...

  • Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。 shell中函数的定义格式如下: ...

  • Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下: 说...

  • 九、Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下: 说...

网友评论

      本文标题:Linux中CASE函数完成功能选择脚本

      本文链接:https://www.haomeiwen.com/subject/iyhitltx.html