linux中的for、while循环输出中赋值变量及shell中循环获取脚本参数
今晚在《高级bash+脚本编程指南》中看到使用for和while循环语句赋值变量的脚本,觉得很有创意。。
从循环的输出中产生一个变量 ################################Start Script####################################### 1 #!/bin/bash 2 # csubloop.sh: 从循环的输出中产生一个变量. 3 4 variable1=`for i in 1 2 3 4 5 5 do 6 echo -n "$i" # 对于这里的命令替换来说 7 done` #+ 这个‘echo‘命令是非常关键的. 8 9 echo "variable1 = $variable1" # variable1 = 12345 10 11 12 i=0 13 variable2=`while [ "$i" -lt 10 ] 14 do 15 echo -n "$i" # 再来一个, ‘echo‘是必须的. 16 let "i += 1" # 递增. 17 done` 18 19 echo "variable2 = $variable2" # variable2 = 0123456789
想起之前想要在shell脚本中去循环获取脚本参数$1、$2、$3、$4。。。
方法1:使用shift,每运行一次shift命令,参数就会往前丢掉一个,即1次后$2变成了$1,2次后$3变成$1,即可以:
for ((i=0;i<=$#;i++)) do a=$1 shift echo $a done
方法2:$@赋值给一个变量,然后再循环读取,貌似比方法1好点:
for i in $@ do echo $i done
方法3:使用eval,两次变量替换:
for ((i=1;i<=$#;i++)) do eval b=\$$i echo $b done
本文出自 “hiubuntu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1386340
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。