2015-10-14 69 views
8

我想一個空字符串作爲值之一傳遞給for循環是bash - 這樣的:如何通過空字符串抨擊for循環

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

這工作。不過,我想存儲的可能值的變量,就像這樣:

VARS="" A B C 
for var in $VARS; do 
    ... 

這裏,空字符串被忽略(或者,如果我使用for var in "$VARS"所有值連接起來)。有沒有簡單的方法來解決這個問題?

回答

10

你不能。不要這樣做。使用數組。

這是Bash FAQ 050的一個版本。

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

和你差不多從未要使用帶引號的變量(如for var in $VARS)。

6

我會建議使用數組

#!/bin/bash 

array=("" 1 2 "") 

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

注:引號* 「$ {數組[@]}」 *是很重要的,否則將無法正常工作。 –