如何在shell脚本中使用${}中的$1

  • 本文关键字:中的 shell 脚本 shell
  • 更新时间 :
  • 英文 :

function print_array(){
NUMBER=1
for i in ${$1[@]}; do
printf "%d: %s n" $NUMBER $i
$((NUMBER++))
done
}

我想写一个函数,它可以接受一个数组作为参数,并打印数组中的所有内容。

所以我写了一些类似${$1[@]}的东西,shell说这是一个";糟糕的替换";。

有什么方法可以达到同样的效果吗?谢谢

此代码有几个问题,但主要问题之一是$1永远不会是数组。如果你想把一个数组传递给一个函数,你需要做这样的事情:

print_array(){
NUMBER=1
for i in "${@}"; do
printf "%d: %s n" $NUMBER "$i"
((NUMBER++))
done
}
myarray=(this is "a test" of arrays)
print_array  "${myarray[@]}"

这将输出:

1: this 
2: is 
3: a test 
4: of 
5: arrays 

注意,这个脚本中的引用是至关重要的:写${myarray[@]}与写"${myarray[@]}"不同;有关详细信息,请参阅bash手册的Arrays部分,有关$@"$@"的信息,请参见Special Parameters部分。

相关内容

  • 没有找到相关文章

最新更新