【发布时间】:2020-03-24 11:07:26
【问题描述】:
我将一个数组传递给一个函数并尝试打印数组的每个元素。
下面是代码 sn-p 用引号括住数组参数:
#!/bin/bash
print_array ()
{
array=$@
for i in "${array[@]}" #with quotes
do
echo $i
done
}
ar=("1. a" "2. b" "3. c")
print_array ${ar[@]}
当我执行上面的脚本时,输出是
1. a 2. b 3. c
下面是数组参数不带引号的代码sn-p:
#!/bin/bash
print_array ()
{
array=$@
for i in ${array[@]} #without quotes
do
echo $i
done
}
ar=("1. a" "2. b" "3. c")
print_array ${ar[@]}
当我执行上面的脚本时,输出是
1.
a
2.
b
3.
c
输出根据数组参数周围的引号而有所不同。 我真的对显示的输出感到困惑。请帮我解决它。
预期的输出应该是:
1. a
2. b
3. c
【问题讨论】:
-
你不能将一个数组复制到一个标量中——一个标量只能保存一个数组元素,但不会丢失数据。
标签: bash