请找到我的脚本和输出
#!/bin/bash
verify=("Tom Dick Harry" "Ricky" "Deep Rising")
function verifyServices()
{
param=("${!1}")
for i in ${param[@]}
do
echo $i
done
}
verifyServices verify[@]
输出: -
汤姆
迪克
哈利
瑞奇深度
瑞星
预期产出: -
汤姆迪克哈利瑞奇
Deep Rising
为什么呢?我的数组声明错了吗?
答案 0 :(得分:4)
在函数内使用引号:
function verifyServices() {
param=("${!1}")
for i in "${param[@]}"; do
echo "$i"
done
}
verifyServices verify[@]
Tom Dick Harry
Ricky
Deep Rising
代码中的主要问题是这一行:
for i in ${param[@]}
由于循环空格将它们视为单独的参数。
应该是:
for i in "${param[@]}"