繁体   English   中英

Debian Bash Shell变量替换错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM