tnfh.net
当前位置:首页 >> shEll中的CAsE >>

shEll中的CAsE

当然可以。如下例: #!/bin/bash i=10 n=10 case $i in $n) echo "ok" ;; *) echo "No such case!" ;; esac 保存为 test.sh $ chmod a+x test.sh $ ./test.sh ok

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。 case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 com...

看上去你那个 != 前后没有加空格呀,没有空格的话就当做一个字串了,字串则为真值,于是就始终为真了,你加上空格试试。

read CHOICE case $CHOICE in 1) mountusb;; 2) umountusb;; 3) display;; 4) cpdisktousb;; 5) cpusbtodisk;; 0) quit;; *) echo "Invalid Choice! Correct Choice is (0--5)" sleep 4 clear;;

case ${i} in (1) function 参数1 参数2 ... ;; (2) ... ;; (...) ... ;;esacdash manual 中的话: The syntax of the case command is case word in [(]pattern) list ;; ... esac

因为你在case语句里echo出来的内容立即被clear命令给清除掉了,然后又紧接着打印出了提示输入的语句。在while语句done前面加个sleep 3就可以看到输出了。

一定要用case吗? 我一般用正则匹配,比如echo $X | grep -P "\d+",然后再判断$?是否为0,如果是0则为数字。

shell 的风格,用倒序的字母单词和 正序的单词配对。 比如 if 语句, 结束时用 fi 来配对 esac是和case配对的,是多路分支的语句,类似于C中的 switch/case 语句,大致形式如 case $VAR in xxx) 执行动作 ;; yyy) 执行动作 ;; esac

你把该变量在脚本开始时声明一下试试,我也是shell新手,而且这里没装环境没有验证,你验证一下把脚本改成下面的样子: #解析conf参数 user_path = “” conf=user.conf cat $conf | while read file do key=`echo $file |awk -F":" '{print $1}'`...

case 的条件判断是基于字符串的,对于你这个问题可以这么来 read i case $i in 20|[1][0-9]|[1-9]) echo $i ;; *) echo 'err' ;; esac 但对于一般的数值范围条件,最好用if elif else语句

网站首页 | 网站地图
All rights reserved Powered by www.tnfh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com