我在 16.04 尝试这个,但它不起作用。取自:https ://stackoverflow.com/a/8880633/2771043 。
编辑:显然,如果您将其复制并粘贴到终端而不是脚本文件上,则此方法有效。如何让它在 .sh 文件上以相同的方式工作?
declare -a arr=("element1" "element2" "element3")
for i in "${arr[@]}"
do
echo "$i"
done
我明白了
old.sh: 2: old.sh: Syntax error: "(" unexpected
如果我取出括号,我会得到
old.sh: 2: old.sh: declare: not found
old.sh: 5: old.sh: Bad substitution
如果您在脚本的头端添加 crunchbang 行以强制 shell 解释器使用该
bash
语法,而不是默认为旧sh
语法,它会起作用。(它也适用于我没有 crunchbang 线,但由于许多原因,使用 crunchbang 线是个好主意。)我创建了文件
arraytest
。然后我让它可执行并执行它。