我想使用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},这应该给我第一个参数。我查看了手册页以及bash脚本指南on the Linux Documentation Project site
我做错了什么?
答案 0 :(得分:4)
使用bash,您可以使用!
:
echo ${!a}
答案 1 :(得分:2)
另一种方法:
while [ $# -gt 0 ]
do
./anotherscript $1 $2
shift 2
done
你可以调整它来决定奇数个参数会发生什么。
答案 2 :(得分:1)
我给了威廉·普尔塞尔一个赞成票。另一种方法是为数组赋值(相对于0):
list=("$@")
a=0
echo ${list[a]}
a=1
echo ${list[a]}