在bash脚本中使用空格的数组

请find我的脚本和输出

#!/bin/bash verify=("Tom Dick Harry" "Ricky" "Deep Rising") function verifyServices() { param=("${!1}") for i in ${param[@]} do echo $i done } verifyServices verify[@] 

输出: –

汤姆

迪克

掠夺

瑞奇

升起

预期产出: –

汤姆迪克哈里

瑞奇

深度崛起

为什么? 我的数组声明是错误的?

在函数里面使用引号:

 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[@]}"