当我在 bash 中创建数组时,比方说,
ARR=( apple banana blueberry)
我可以使用
$ARR
轻松迭代 ${!ARR[@]}
的索引来获取索引,如下所示:
for i in ${!ARR[@]}; do
echo "[$i]=${ARR[$i]}"
done
我该如何迭代
${@}
?
我首先尝试与以下内容进行“等同”:
__fn(){
for i in ${!@}; do
echo "\[$i\]=${@\[$i\]}";
done;
}
但是我收到了“替换错误”错误。
作为“解决方法”,我使用
ARRAY=${@}
制作了数组的副本,但我正在寻找一种更优雅的方法。
如何迭代 ${@}?
通常:
while (($#)); do
echo "$1"
shift
done
但是如果你想查看索引:
for ((i=1;i<=$#;++i)); do
echo "[$i]=${!i}"
done
真的,如果您对数组感到满意,只需:
arr=("$@")