Shell循环脚本在第一次迭代后停止(非常简单的代码)[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我对Shell脚本很陌生。我正在学习它的基础。我非常简单的for循环无法正常工作。它总是在第一次迭代时停止。我已经按照文档创建了一个数组变量,并使用带有超级简单代码的for循环。

#!/bin/bash

LIST=()
LIST+=('aaa') 
LIST+=('bbb') 
LIST+=('ccc') 

for i in $LIST
do
    echo '----------'$i'----------'
done

仅显示'aaa',然后停止循环。我真的不知道。请帮助。

bash
1个回答
2
投票

$LIST扩展到数组LIST中的第一个元素,基本上与${LIST[0]}相同。您需要在双引号中使用${LIST[@]},以将每个元素作为一个单独的单词,例如:

#!/bin/bash

LIST=()
LIST+=('aaa') 
LIST+=('bbb') 
LIST+=('ccc') 

for i in "${LIST[@]}"
do
    echo '----------'"$i"'----------'
done

c.f。 Bash Reference Manual § Arrays

© www.soinside.com 2019 - 2024. All rights reserved.