首页 > 解决方案 > Shell Script for loop 在第一次迭代后停止(非常简单的代码)

问题描述

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

#!/bin/bash

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

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

它只显示'aaa'然后停止循环。我真的不知道。请帮忙。

标签: bash

解决方案


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

#!/bin/bash

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

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

cf Bash 参考手册§数组


推荐阅读