使用任意数量的参数填充 bash 数组
Populate bash array with any amount of arguments
我正在尝试通过将内容直接传递给脚本来填充脚本中的数组:
bash ./script.sh arg1 arg2 arg3
我知道我可以用 $1、$2 等等来处理这些参数,但是数组中的项目数量并不总是相同,这就是我不能真正做到的原因:
databases=( )
我想我可以使用循环,但我不知道如何遍历所有传递的参数。
你想要
databases=("$@")
将所有的参数抓取到数组中
你必须在那里使用引号,否则
bash ./script.sh "arg one" "arg two" "arg three"
无法正确捕获 3 个参数。
正如@Gordon 所说,
for db in "${databases[@]}"; do
echo "$db"
done
如您所见:$databases
表现得像 ${databases[0]}
-- 一个 bash 怪癖。
并引用你的变量:不是 echo $i
而是 echo "$i"
-- 养成这个习惯,它会拯救你的隐藏。
我正在尝试通过将内容直接传递给脚本来填充脚本中的数组:
bash ./script.sh arg1 arg2 arg3
我知道我可以用 $1、$2 等等来处理这些参数,但是数组中的项目数量并不总是相同,这就是我不能真正做到的原因:
databases=( )
我想我可以使用循环,但我不知道如何遍历所有传递的参数。
你想要
databases=("$@")
将所有的参数抓取到数组中
你必须在那里使用引号,否则
bash ./script.sh "arg one" "arg two" "arg three"
无法正确捕获 3 个参数。
正如@Gordon 所说,
for db in "${databases[@]}"; do
echo "$db"
done
如您所见:$databases
表现得像 ${databases[0]}
-- 一个 bash 怪癖。
并引用你的变量:不是 echo $i
而是 echo "$i"
-- 养成这个习惯,它会拯救你的隐藏。