我想将一个空字符串作为值之一传递给 bash for 循环 - 像这样:
for var in "" A B C; do
...
done
这有效。但是,我想将可能的值存储在变量中,如下所示:
VARS="" A B C
for var in $VARS; do
...
这里,空字符串将被忽略(或者如果我使用
for var in "$VARS"
,则所有值都会连接起来)。有没有简单的方法可以解决这个问题?
你不能。不要那样做。使用数组。
这是 Bash FAQ 050 的一个版本。
VARS=("" A B C)
for var in "${VARS[@]}"; do
: ...
done
而且你几乎从不想要使用不带引号的变量(如
for var in $VARS
)。
我建议使用数组
#!/bin/bash
array=("" 1 2 "")
for i in "${array[@]}";do
echo $i
done
我正在构建一个包含另一个 bash 变量variablea 的数组,但它恰好是空的。 在这种情况下,通过引用 bash 变量来初始化这样的数组非常重要。
VARS=( "$variablea" )