私はbashスクリプトでstdinからlength
文字を読み込もうとしていますが、変数として長さを渡す方法を理解できません。bashで可変数の文字を読むにはどうすればよいですか?
これがなければならない(TM)が動作するスクリプトです:場合は、しかし、
20558
done
:私の猫/home/ubuntu/test
は私が最後の読み取りからのデータが表示されない
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
けど、私はread -n $length line
をread -n 20558 line
と置き換えます。ファイル内に期待されるデータが得られます。
長さを変数にしてread
に渡すにはどうすればよいですか?
編集
OK、私はlength
に末尾の改行を持っていました。作品:
read -n ${length:0:-1} line
'{i {1..9} 'ループの' 'read line'の目的は何ですか?残りの入力の長さを取得できるように、 – anubhava
を入力します。 – Andrew
長さ演算子 '#'については、[この質問](http://stackoverflow.com/q/17368067/4241932)を参照してください。 – Matthew0898