如何在 Bash 中使用数组?

如何在 Bash 中使用数组?

我在 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

答案1

如果在脚本的开头添加 crunchbang 行以强制 shell 解释器使用该bash语法而不是默认使用旧sh语法,则此方法有效。(对我来说,即使没有 crunchbang 行,方法也能正常工作,但出于许多原因,使用 crunchbang 行是个好主意。)

我创建了该文件arraytest

#!/bin/bash

declare -a arr=("element1" "element2" "element3")

for i in "${arr[@]}"
do
   echo "$i"
done

然后我使其可执行并执行它。

chmod ugo+x arraytest

$ ./arraytest
element1
element2
element3

相关内容