我对编写脚本非常陌生,只需要收集我的脚本所需的所有信息。
我想迭代一个具有变量名的数组。到目前为止我的剧本:
#!/bin/bash
declare -a bff=("Abnehmen" "Buecher" "Dating" "Dating" "Fitness" "Handy" "Hunde" "Reisen" "Schmuck" "Schwanger" "Uhren")
declare -a dab=("baby" "beauty" "fitness" "haushalt" "heimwekren")
for product in bff dab; do
echo "${product[@]}" #works fine, it echoes 'bff' in the first loop
for sub in ${!product[@]}; do
echo "${product}/${sub}" #does not work, echoes 'bff/0'
done
done输出:
bff
bff/0
dab
dab/0
ddb
ddb/0
dwb
dwb/0
pod
pod/0我不知道为什么我可以正确地回显变量,但是不能在for循环中使用它。我发现的教程只是关于对varibale变量的回音,但是现在如何在循环中使用它。
有人能在这里帮助我或引导我走正确的方向吗?
我想要的产出是:
bff
bff/Abnehmen
bff/Buecher
bff/Dating
...
dab
dab/baby
dab/beauty
...发布于 2020-03-13 11:45:18
通过declare -n refvar=$varname使用变量引用:
#!/bin/bash
declare -a bff=("Abnehmen" "Buecher" "Dating" "Dating" "Fitness" "Handy" "Hunde" "Reisen" "Schmuck" "Schwanger" "Uhren")
declare -a dab=("baby" "beauty" "fitness" "haushalt" "heimwekren")
for product in bff dab; do
echo "${product[@]}" #works fine, it echoes 'bff' in the first loop
declare -n parray=$product
for sub in "${parray[@]}"; do
echo "${product}/${sub}" #does not work, echoes 'bff/0'
done
done
bff
bff/Abnehmen
bff/Buecher
bff/Dating
bff/Dating
bff/Fitness
bff/Handy
bff/Hunde
bff/Reisen
bff/Schmuck
bff/Schwanger
bff/Uhren
dab
dab/baby
dab/beauty
dab/fitness
dab/haushalt
dab/heimwekrenhttps://unix.stackexchange.com/questions/572702
复制相似问题