shell 编程 里面 if 嵌套 for 语句的匪夷所思的 事情!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 编程 里面 if 嵌套 for 语句的匪夷所思的 事情!!相关的知识,希望对你有一定的参考价值。
下面是我的小代码:
#!/bin/bash
RATEMIN1=40
RATEMIN5=60
if [ $RATEMIN1 -le 50 ] && [ $RATEMIN5 -ge 50 ]
then
for i in 1 2 3 4 5
do
if [ $RATEMIN$i -ge 50 ]
then
echo "FUCK!"
break
fi
continue
done
fi
运行之后,没有结果显示,但是如果我把 RATEMIN1和2的值颠倒,然后把第一个if语句里面的条件改成 -le ,那就有结果显示出来!!,我很奇怪我这到底问题出在哪?求高手指点!!!我运行的环境是solaris10g
上面说的把 RATEMIN1和2的值颠倒后,然后是把if [ $RATEMIN1 -le 50 ] && [ $RATEMIN5 -ge 50 ] 改成 if [ $RATEMIN1 -ge 50 ] && [ $RATEMIN5 -le 50 ] 就有结果了~~
RATEMIN1=40
RATEMIN5=60
if [ $RATEMIN1 -le 50 ] && [ $RATEMIN5 -ge 50 ]
then
for i in 1 2 3 4 5
do
eval tmp=\$RATEMIN$i
if [ "$tmp" -ge 50 ]
then
echo "tmp=$tmp HI!"
break
fi
continue
done
fi 参考技术B #!/bin/bash
RATEMIN1=40
RATEMIN5=60
echo $RATEMIN1 -le 50
echo $RATEMIN5 -ge 50
if [ $RATEMIN1 -le 50 ] && [ $RATEMIN5 -ge 50 ]
then
for i in 1 2 3 4 5
do
eval value='$'RATEMIN$i
if [ ! -n "$value" ];then
continue
fi
if [ $value -ge 50 ]
then
echo "FUCK!"
break
fi
continue
done
fi本回答被提问者采纳
shell编程之if语法case语法while语句until语句for语句select语句
主要介绍shell基本语句的语法
if语句语法
1 单分支结构 (如果,那么)
if <条件测试> ;then 指令;fi
或者如下:
if <条件测试>
? then
? 指令
fi
2 双分支结构(如果,那么,否则。。。)
if <条件表达式>
? then
? 指令
else
? 指令
fi
多分支结构(如果,那么,否则如果,那么,否则。。。)
if <条件表达式>
? then
? 指令
elif <条件表达式>
? then
? 指令
else
? 指令
fi
其中elif可以有多个
case 语法
case “变量” in
?值1)
? 指令1 …
? ;;
?值 2)
? 指令 2 …
? ;;
?*)
? 指令3 …
esac
当变量值为值1 时 ,执行指令1,类推,都不符合执行最后*)的指令
while语句
while <条件表达式>
do
?指令..
done
说明:
1 while 对条件检测,如果成立执行指令,done后,又检测,如果成立,又执行一 次,直到不满足条件,停止循环
2 while ture 表示条件永远为真,会一直循环 ( while [ 1 ] 和while ture一样 )
while 循环按行读取文件的方式
方法一
exec < file
while read line
do
? 指令
done
方法二
cat file|while read line
do
? 指令
done
方法三
while read line
do
? 指令
done<file
until 语法
until <条件表达式>
do
?指令..
done
说明:会在条件不成立时,执行循环,条件成立停止
for语法
1 for 变量名 in 变量列表
do
?指令..
done
2 for ((exp1;exp2;exp3))
do
?指令..
done
说明:
for 后面双括号里是3个表达式,第一个是变量初始化,第二个为变量的范围,第三个为变量自加或自减,当第一个初始化值符合第二个变量范围时候,循环,否则,退出。
**select语句
select 变量名 [ in 菜单取值列表 ]
do
? 指令..
done
以上是关于shell 编程 里面 if 嵌套 for 语句的匪夷所思的 事情!!的主要内容,如果未能解决你的问题,请参考以下文章