Bash命令行arg以选择要循环通过的字符串数组



bash脚本将在其中包含多个数组,每个数组都有不同的城市,命令行arg$1是如何选择要循环的数组,因此静态地执行GA

#!/bin/bash
GA=( Atlanta Rome )
FL=( Jacksonville Miami )
for city in "${GA[@]}"
do
echo $city
done

但是如何使用命令行arg$1来选择要通过的数组呢?我知道大括号扩展不能做变量,所以我想需要在没有大括号的情况下做这件事,但不确定如何做?

您可以使用nameref变量(请参阅Bash手册中的示例(:

#!/bin/bash
declare -n arr=$1
GA=( Atlanta Rome )
FL=( Jacksonville Miami )
for city in "${arr[@]}"; do
echo "$city"
done

输出:

$ ./script.sh GA
Atlanta
Rome
$ ./script.sh FL
Jacksonville
Miami

最新更新