如何将空字符串传递给bash for循环

时间:2015-10-14 13:07:52

标签: string bash for-loop

我想将一个空字符串作为其中一个值传递给bash for-loop - 就像这样:

len = nodelist.getLength();
for (int i = 0, i < len; i++)

这很有效。但是,我想将可能的值存储在变量中,如下所示:

for var in "" A B C; do
    ...
done

这里,忽略空字符串(如果我使用VARS="" A B C for var in $VARS; do ... ,则连接所有值)。有没有一种简单的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:13)

你做不到。不要那样做。使用数组。

这是Bash FAQ 050的版本。

VARS=("" A B C)
for var in "${VARS[@]}"; do
    : ...
done

你几乎从不想要使用不带引号的变量(如for var in $VARS)。

答案 1 :(得分:8)

我建议使用数组

#!/bin/bash

array=("" 1 2 "")

for i in "${array[@]}";do
    echo $i
done