0

我想使用 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 文档项目站点上的 bash 脚本指南

我究竟做错了什么?

4

3 回答 3

4

使用 bash,您可以使用 a 进行间接引用!

echo ${!a}
于 2013-07-18T22:19:00.713 回答
2

另一种方法:

while [ $# -gt 0 ]
do
    ./anotherscript $1 $2
    shift 2
done

你可以调整它来决定奇数个参数会发生什么。

于 2013-07-19T09:06:08.343 回答
1

我给了威廉·珀塞尔(William Pursell)一个赞成票。另一种方法是将值分配给数组(相对为 0):

list=("$@")
a=0
echo ${list[a]}
a=1
echo ${list[a]}
于 2013-07-18T22:22:00.773 回答