我試圖從bash腳本中讀取stdin中的length
字符,但我無法弄清楚如何將長度作爲變量傳遞。如何在bash中讀取可變數量的字符?
這是腳本應該(TM)工作:
for i in {1..9}
do
read line
done
array=(${line})
length=${array[1]}
echo "$length" >> /home/ubuntu/test
read line
read -n $length line
echo "$line" >> /home/ubuntu/test
echo "done" >> /home/ubuntu/test
,但是,當我的貓/home/ubuntu/test
我沒有看到最後的讀取數據:
20558
done
但是,如果我用read -n 20558 line
替換read -n $length line
我在文件中得到預期的數據。
如何將長度作爲變量傳遞給read
?
編輯
OK,我在length
有一個換行符。此作品:
read -n ${length:0:-1} line
在{1..9}'循環中爲'i中的'read line'的目的是什麼? – anubhava
,這樣我就可以得到剩餘輸入的長度。 – Andrew
長度運算符'#'怎麼樣,請參見[這個問題](http://stackoverflow.com/q/17368067/4241932)。 – Matthew0898