我有一個劇本的時候 這讀取文件的字符是我使用的腳本慶典:每次從一個字符串一個字符閱讀文本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作正常,只是我找不到了如何每個字符存儲到一個變量 即時尋找類似
N$X=$char
其中X =計數或字符和$字符=字符
任何幫助,將不勝感激。謝謝!
我有一個劇本的時候 這讀取文件的字符是我使用的腳本慶典:每次從一個字符串一個字符閱讀文本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作正常,只是我找不到了如何每個字符存儲到一個變量 即時尋找類似
N$X=$char
其中X =計數或字符和$字符=字符
任何幫助,將不勝感激。謝謝!
你可以做這樣的事情:
X=0
while IFS= read -r -n1 char; do
eval "N$X=\$char"
X=`expr $X + 1`
done < "$INPUT"
在循環結束時,X0
,X1
,X2
等將包含在已被讀取的各種人物
作爲。一般的事情,有像N1
,N2
,N2
等變量,並希望能夠訪問他們像N$i
與i
另一個變量是非常糟糕的。對此的解決方案在陣列中。下面是我將如何使用數組,而不是解決問題:
n=()
i=0
while read -r -n1 n[i]; do
echo "Character $i is ${n[i]}"
((++i))
done < "$INPUT"
在這一點上,你有你的字符數組n
(當然不是全部,他們)英寸你可以有
${n[k]}
(記住,數組索引從0開始)訪問字符k+1
。
另一種可能性是在一個字符串發出聲音的一切,它是像這樣簡單:
string=$(< "$INPUT")
,你可以有
${n:k:1}
訪問字符k+1
(取子長度1從索引k
開始)。循環上的所有字符可以做的是:
for ((k=0;k<${#string};++k)); do
echo "Character $k is '${string:k:1}'"
done
這個作品我想要的方式來 非常感謝你 –
不客氣。但請[接受我的回答](http://stackoverflow.com/help/someone-answers)如果它適合你。 –
只要輸入文件包含空格,這不會失敗嗎? – ruakh