【发布时间】:2023-03-17 14:29:01
【问题描述】:
我正在尝试在 Shell 脚本中声明一个空数组,但遇到错误。
#!/bin/bash
list=$@
newlist=()
for l in $list; do
newlist+=($l)
done
echo "new"
echo $newlist
当我执行它时,我得到test.sh: 5: test.sh: Syntax error: "(" unexpected
【问题讨论】:
-
代码运行无误
-
您确定使用
bash运行您的脚本吗?看起来脚本正在使用sh运行,在这种情况下不支持数组。 -
此外,将
$@分配给另一个参数会失去$@的好处,即保留单个命令行参数中的空格。抛弃list,直接使用for l in "$@"; do。