我确实了解以下脚本正在安装软件包,但我不了解的是哪些软件包:
for package in ${d[@]};
do
rpm -ivh --quiet ${!package} >/dev/null 2>&1
什么是${d[@]}
?
答案 0 :(得分:0)
在这种情况下,“ d”是数组的名称。方括号中的“ @”表示“数组的每个元素分别”。
因此,“ for”循环遍历数组中列出的每个程序包。
关于${!package}
(摘自bash手册man bash
“扩展”部分):
如果参数的第一个字符是感叹号(!),则 引入了变量间接级别。 Bash使用以下值 由其余参数构成的变量作为 变量;然后扩展此变量,并在 其余的替换,而不是参数本身的值。 这就是所谓的间接扩展。
由于您没有发布完整的脚本,所以我无法真正看到其工作原理。