我创建了一个数组,如下所示:
declare -p RePos=("$MntPnt"/Module-Basesystem\ sles-15-"$ServPck"-server-basesystem-x86_64
"$MntPnt"/Module-Server-Applications\ sles-15-"$ServPck"-server-application-x86_64
"$MntPnt"/Module-Development-Tools\ sles-15-"$ServPck"-server-development_tools-x86_64
)
然后我尝试(但未能)打印/回显每个数组元素的最后一个字符串,即
sles-15-sp3-server-basesystem-x86_64
sles-15-sp3-server-application-x86_64
sles-15-sp3-server-development_tools
使用以下内容:
for Add_RePos in "${!RePos[@]}"
do
echo "
$(tput setaf 2)--> Creating "${RePos[@]-1}" Repositories <--$(tput sgr0)
"
done
但是,当我运行关联的脚本时,我没有得到所需的结果,只是得到了数组的所有元素。
# sh CreateReposWithISO.sh
declare -a RePos=([0]="/mnt/Module-Basesystem sles-15-sp3-server-basesystem-x86_64" [1]="/mnt/Module-Server-Applications sles-15-sp3-server-application-x86_64" [2]="/mnt/Module-Development-Tools sles-15-sp3-server-development_tools-x86_64")
--> Creating /mnt/Module-Basesystem sles-15-sp3-server-basesystem-x86_64 /mnt/Module-Server-Applications sles-15-sp3-server-application-x86_64 /mnt/Module-Development-Tools sles-15-sp3-server-development_tools-x86_64 Repositories <--
--> Creating /mnt/Module-Basesystem sles-15-sp3-server-basesystem-x86_64 /mnt/Module-Server-Applications sles-15-sp3-server-application-x86_64 /mnt/Module-Development-Tools sles-15-sp3-server-development_tools-x86_64 Repositories <--
--> Creating /mnt/Module-Basesystem sles-15-sp3-server-basesystem-x86_64 /mnt/Module-Server-Applications sles-15-sp3-server-application-x86_64 /mnt/Module-Development-Tools sles-15-sp3-server-development_tools-x86_64 Repositories <--
# bash --version
GNU bash, version 4.4.23(1)-release (x86_64-suse-linux-gnu)
我尝试了几种不同的格式来产生我想要的结果,但没有成功,即
${RePos[${#RePos[@]} - 1]}
看起来您可能需要一个关联数组:
#!/bin/bash
MntPnt=/mnt/c
SerPck=sles-15-sp3
declare -A RePos=("$MntPnt"/Module-Basesystem\ sles-15-"$ServPck"-server-basesystem-x86_64
"$MntPnt"/Module-Server-Applications\ sles-15-"$ServPck"-server-application-x86_64
"$MntPnt"/Module-Development-Tools\ sles-15-"$ServPck"-server-development_tools-x86_64
)
for Add_RePos in "${!RePos[@]}"
do
echo "\"$Add_RePos\" Creating \"${RePos[$Add_RePos]}\" Repositories"
done
输出:
"/mnt/c/Module-Development-Tools " Creating "sles-15--server-development_tools-x86_64" Repositories
"/mnt/c/Module-Basesystem " Creating "sles-15--server-basesystem-x86_64" Repositories
"/mnt/c/Module-Server-Applications " Creating "sles-15--server-application-x86_64" Repositories