BASH脚本:如何在另一个变量中使用变量

BASH脚本:如何在另一个变量中使用变量,bash,Bash,我需要存储在数组中传递的命令行参数 我的命令是 ./test1.sh 2 4 6 现在我需要将2 4 6存储在一个数组中,并使用 s1=$# "it tells how many arguments are passed." for (( c=1; c<=$s1; c++ )) do a[$c]}=${$c} s1=$# “它告诉我们传递了多少个参数。” 对于((c=1;c您始终可以选择第一个参数并将其删除。使用$1和shift) c=1 while [ $

我需要存储在数组中传递的命令行参数

我的命令是

./test1.sh 2 4 6
现在我需要将2 4 6存储在一个数组中,并使用

s1=$#     
"it tells how many arguments are passed."


for (( c=1; c<=$s1; c++ ))

do

     a[$c]}=${$c}
s1=$#
“它告诉我们传递了多少个参数。”

对于((c=1;c您始终可以选择第一个参数并将其删除。使用
$1
shift

c=1
while [ $# -gt 0 ]; do
    a[$c]=$1
    c=$((c+1))
    shift
done

您始终可以选择第一个参数并将其删除。使用
$1
shift

c=1
while [ $# -gt 0 ]; do
    a[$c]=$1
    c=$((c+1))
    shift
done

这将为您提供一个包含以下参数的数组:
args=(“$@”)


您可以这样调用它们:
echo${args[0]}${args[1]}${args[2]}
这将为您提供一个带有参数的数组:
args=(“$@”)

您可以这样调用它们:
echo${args[0]}${args[1]}${args[2]}

bash变量可以通过\$$VARNAME或${!VARNAME}在 因此,您的派遣声明必须是:

a[$c]=${!c} 

bash变量可以是\$$VARNAME,也可以是${!VARNAME} 因此,您的派遣声明必须是:

a[$c]=${!c} 


很高兴我能帮忙。你能标记一个接受的答案,这样问题就不会留在“未回答”部分吗?很高兴我能帮忙。你能标记一个接受的答案,这样问题就不会留在“未回答”部分吗?