我试图通过间接扩展扩展数组中的所有值:
> my_array=(coconut banana) > echo "${my_array[@]}" coconut banana > my_array_name=my_array > echo ${!my_array_name} coconut > echo "${!my_array_name[@]}" 0
我错误地在最后一个命令中使用“数组键列表”,因为我不知道如何键入正确的命令?
我想得到:
coconut banana
可能没有诉诸一些丑陋的评估黑客..一个黑客黑客的例子:
> echo \${$my_array_name[@]} ${my_array[@]} > eval echo \${$my_array_name[@]} coconut banana
注意
my_array可能包含带空格的值!
编辑
在我写的函数中,my_array_name通过“$1”设置,所以我不能按字面意思使用它.
类似于:https://unix.stackexchange.com/questions/20171/indirect-return-of-all-elements-in-an-array但是我需要避免使用eval来保护脚本在正确的时间“被黑客攻击”时会产生令人讨厌的影响……