`
tomhibolu
  • 浏览: 1431046 次
文章分类
社区版块
存档分类
最新评论

@while+do。。。done和case。。。esac或者if。。。then。。fi的嵌套使用@

 
阅读更多

(一)while do。。。done和case。。。esac嵌套使用

cpsDeploy_menu(){
echo " --- CPS APP Menu--- "
echo " help app command: getdeploy app_name "
#echo "deploy $size $app_name "
echo " Check app status: status app_name:app_name "
echo " Deploy Command : deploy IP app_name source_path/"
#echo

while true ; do
read -p "App> " appcomm deploylist(两个变量)

case "$appcomm" in
"quit")

break
;;
"getdeploy")
echo " Search $deploylist :"
num=`grep "^$deploylist" cpsapplist.prop | wc -l`
if [ $num > 0 ];then
getdeployapp $deploylist
else
echo " Please sure the app name is correct! "
fi
;;
"deploy")
echo " cps app deployment now...."
echo "deploy directory: $deploylist"
deploywarapp $deploylist
#getdeploylist $deploylist
;;
"status")
getappstatus $deploylist
;;
esac

done

}

注意:

在测试的过程中我发现了一个错误,就是那个if [ $num > 0 ]中不能够用>,正确的用法应该是

if [ $num-gt 0 ]

或者

if [ $num\>0 ]

或者

if [[ $num>0 ]]

(二)while do。。。done和if。。。then。。。fi的嵌套使用

getappInfo(){
app=$1
i=0
sed -n "/^$app=/p" "$sordir"cpsapplist.prop | cut -d= -f2 |
while read i
do
if [ ! -z "$i" ]
then
array=( `echo $i`)
size=${#array[*]}

ip=${array[0]}
appid=${array[1]}
appdir=${array[2]}
startcmd=${array[3]}
apptype=${array[4]}
fi
done
}

点评:

首先getappInfo()是自定义的函数

然后用到一个管道命令

再有就是while do。。。done和if。。。then。。。fi的嵌套使用

最后在if。。。then判断语句中又用到了数组

这些都是这个函数的一大亮点~

ps:

break跳出整个循环

continue跳出本次循环,进行下次循环

分享到:
评论

相关推荐

    SHELL脚本常识.pdf

    此外,`if`语句还可以嵌套使用,形成更复杂的逻辑结构: ```bash if 条件表达式1 then if 条件表达式2 then 命令列表 else if 条件表达式3 then 命令列表 else 命令列表 fi fi else 命令列表 fi ``` #...

    SHELL脚本常识.doc

    `if`语句可以通过嵌套实现更复杂的逻辑,可以有多层`if...else if...else`结构。条件表达式通常涉及`test`命令或其等价的`[`和`]`,用来检查文件属性、比较值、检查字符串等。例如,检查参数是否为文件或目录的脚本...

    马哥运维推荐的108道Shell脚本面试真题

    调试Shell脚本可以通过在执行时添加`-x`参数,如`sh -x myscript.sh`,或者使用`-nv`参数,如`sh -nv myscript.sh`。 比较字符串可以使用`test`命令,例如`[ "$str1" = "$str2" ]`检查`str1`是否等于`str2`。 以上...

    shell 编程基础

    - **If嵌套与Elif**:多条件判断结构,例如: ```bash if [ $a -gt 10 ]; then echo "a is greater than 10" elif [ $a -eq 10 ]; then echo "a is equal to 10" else echo "a is less than 10" fi ``` ...

    Linux函数和脚本

    ##### 例二:多if嵌套 ```bash if [ $VAR -gt 10 ]; then echo "VAR 大于10" if [ $VAR -lt 20 ]; then echo "VAR 小于20" else echo "VAR 大于或等于20" fi else echo "VAR 小于或等于10" fi ``` #### 6. ...

    宋劲彬的嵌入式C语言一站式编程

    5.2. if/then/elif/else/fi 5.3. case/esac 5.4. for/do/done 5.5. while/do/done 5.6. 位置参数和特殊变量 5.7. 函数 6. Shell脚本的调试方法 32. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言...

    linux中Shell编程

    9. **流程控制**:包括`if...fi`(条件判断),`case...esac`(多分支选择),`for`,`while`,`until`(循环)等结构。例如: ```bash if [ "$var" -gt 10 ]; then echo "The variable is greater than 10" ...

    Linux Shell脚本面试25问

    回答:基础语法如下:if [ 条件 ]then命令1命令2…..elseif [ 条件 ]then命令1命令2….else命令1命令2…..fi。 知识点:if语句、嵌套if语句 6. shell脚本中“$?”标记的用途是什么? 回答:在写一个shell脚本时,...

    Linux Shell编程绘制国际象棋棋盘

    2. **循环结构**:Shell 支持多种类型的循环结构,如 `for` 循环和 `while` 循环,这些结构在处理重复性任务时非常有用。 3. **条件判断**:使用 `if` 语句可以基于不同的条件执行不同的操作。 4. **颜色控制**...

    Linux Shell脚本面试25问集合

    了解和熟练掌握Shell脚本对于Linux系统管理员和开发者来说至关重要,尤其是在面试过程中,以下是一些常见的Shell脚本面试问题及答案: 1. **Shell脚本是什么,为什么需要它?** Shell脚本是一个包含了多条命令的...

Global site tag (gtag.js) - Google Analytics