当前位置: 技术问答>linux和unix
看看这个shell脚本的功能,很简单的,不过总觉得题目有点问题
来源: 互联网 发布时间:2015-06-29
本文导语: #!/bin/bash x=0 while [ $x –lt 10 ] do echo “$x c” y=$(($x-1)) x=$(($$x+1)) while [ $y -gt 0 ] do y=$(($y-1)) echo “$y c” done echo done eval $cmd | >1.这里的eval $cmd 是什...
#!/bin/bash
x=0
while [ $x –lt 10 ]
do
echo “$x c”
y=$(($x-1))
x=$(($$x+1))
while [ $y -gt 0 ]
do
y=$(($y-1))
echo “$y c”
done
echo
done
eval $cmd
x=0
while [ $x –lt 10 ]
do
echo “$x c”
y=$(($x-1))
x=$(($$x+1))
while [ $y -gt 0 ]
do
y=$(($y-1))
echo “$y c”
done
echo
done
eval $cmd
|
>1.这里的eval $cmd 是什么意思啊?
shell内部命令
eval [arg ...]
读取args,并将args合为一个命令,然后执行。其返回值成为eval的返回值。如果没有参数,eval返回True。
>2.还有第一个done后面的
》echo
》done是多余的吧?
echo 是增加一个空行,要来格式显示
done- 每个while 都对应一个done
3.不用expr也行的吧?
》 我只会用这个
shell内部命令
eval [arg ...]
读取args,并将args合为一个命令,然后执行。其返回值成为eval的返回值。如果没有参数,eval返回True。
>2.还有第一个done后面的
》echo
》done是多余的吧?
echo 是增加一个空行,要来格式显示
done- 每个while 都对应一个done
3.不用expr也行的吧?
》 我只会用这个
|
不用expr也可以,用(()).比如上面的例子可以改为:y=`(( $x - 1))`.这里都是backslash(`)