程序如下:
#!/bin/bash
name=(a,b,c,d)
echo ${name[1]}
echo ${name[@]}
echo ${name[*]}
运行结果:
原因分析: Shell数组对于元素的识别是通过换行实现的,也就是说我们这里将a,b,c,d看做一个数组元素,那么输出name[1]肯定没有结果。 修改一下代码:
#!/bin/bash
name=(a,b,c,d)
echo ${name[0]}
echo ${name[@]}
echo ${name[*]}
运行结果为:
解决方法:
#!/bin/bash
name=(
a,
b,
c,
d
)
echo ${name[1]}
echo ${name[@]}
echo ${name[*]}
或者:
#!/bin/bash
name=(
a
b
c
d
)
echo ${name[1]}
echo ${name[@]}
echo ${name[*]}