2015-04-12 53 views
0

我應該如何循環字符串中的所有字符。bash循環槽字符串中的所有字符

我的僞

stringVar="abcde" 

for var in stringvar 
{ 
    do some things with var 
} 

結果我需要
一個

b

Ç

d

我想循環中的所有增值經銷商,但我只能得到它與空白符合plitted VAR像

stringVar="a b c" 


for var in stringVar; do 
    echo $var 
done; 

結果

一個

b

Ç

,但我不能做到這一點的是心不是用空格分開的字符串。

問題被標記爲重複,但不是一個答案(與upvotes)處於聯接問題,可利用的。

+0

@alfasin他們沒有解釋如何對每個字符執行操作。 –

+2

[Yes they do](http://stackoverflow.com/a/10552175/635608),@SvenB – Mat

+0

爲什麼你認爲你需要做這件事? –

回答

1
stringVar="abcde" 
for ((i=1;i<=${#stringVar};i++)); do 
    echo ${stringVar:$i-1:1} 
done 

輸出:

 
a 
b 
c 
d 
e 
+2

爲什麼不爲'((i = 0;我<$ {#stringVar}; i ++));做echo $ {stringVar:$ i:1}'? –

+0

是的,這很容易。 – Cyrus

2

您可以使用read爲此:

string="abcde" 
while read -n 1 char ; do 
    echo "$char" 
done <<< "$string" 

U唱歌-n 1read將一次讀取一個字符。但是,輸入重定向<<<$string的末尾添加了換行符。