为什么这个for循环不处理数组的所有元素?

ste*_*wpf 5 arrays bash for-loop

给出以下脚本:

#!/bin/bash

asteriskFiles=("sip.conf" "extensions.conf")

for asteriskFile in $asteriskFiles
do
    # backup current configuration file
    cp somepath/${asteriskFile} test/
    echo "test"
done
Run Code Online (Sandbox Code Playgroud)

这给了我输出"test"一次,所以循环只运行一次而不是两次(asteriskFiles数组中的两个条目).我究竟做错了什么?谢谢你的提示!

koj*_*iro 11

举例说明:

$ asteriskFiles=("sip.conf" "extensions.conf")
$ echo $asteriskFiles # is equivalent to echo ${asteriskFiles[0]}
sip.conf
$ echo "${asteriskFiles[@]}"
sip.conf extensions.conf
Run Code Online (Sandbox Code Playgroud)

请注意,引号很重要.echo ${asteriskFiles[@]}似乎可以工作,但如果你的任何文件中有空格,bash会在空格上拼写.