[英]Debian Bash Shell Variable Substitution error
我想使用bash脚本来调用其他脚本
#!/bin/bash
./anotherScript $1 $2
./anotherScript $3 $4
#and so on
我不知道将传递多少个变量,因此我正在使用变量'i'从0到$#并试图以$ {$ i}作为参数。 但是Bash给了我一个不好的替换错误。 我尝试了以下方法:
a=1
echo $a
echo ${$a} #doesn't work
echo ${${a}} #doesn't work
他们都不工作。 我期望$ {$ a}的值为$ {1},这应该给我第一个论点。 我浏览了手册页以及Linux Documentation Project网站上的 bash脚本指南。
我究竟做错了什么?
使用bash,您可以使用!
进行间接引用!
:
echo ${!a}
另一种方法是:
while [ $# -gt 0 ]
do
./anotherscript $1 $2
shift 2
done
您可以调整它来决定使用奇数个参数会发生什么。
我给威廉·珀塞尔(William Pursell)赞成。 执行此操作的另一种方法是将值分配给数组(相对值为0):
list=("$@")
a=0
echo ${list[a]}
a=1
echo ${list[a]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.