我想将一个空字符串作为其中一个值传递给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
...
,则连接所有值)。有没有一种简单的方法可以解决这个问题?
答案 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