以下のように、オプション\r
(復帰)を使用してエコーコマンドを実行していました。
echo -e "This is \r my college"
出力:
my college
しかし、以下のように\r
の前にもう1つの単語を追加すると
echo -e "This is the \r my college"
次に、次のような出力が得られます。
my college the
もう一つの例
echo -e "This is \r valid data"
valid data
echo -e "This is not a \r valid data"
valid data a
それで、ここで改行の実際の目的は何ですか?
\r
はそれだけの「キャリッジリターン」です-他には何もありません。つまり、\r
の後にあるものが、すでに印刷されているものの先頭を上書きします。
例えば:
echo -e "1234\r56"
表示されます:
5634
echo
は1234
を出力してから、行の先頭に戻って56
の上に12
を出力しました。
新しい行については、代わりに\n
を試してください。スペースも必要ありません。例えば:
echo -e "This is\nmy college"
どちらが出力されます:
This is
my college
キャリッジリターンは次のような場合に役立ちます。
#!/bin/sh
i=0
while [ $i -lt 3 ]
do
echo -ne "\r"`date` #you should remove new line too
sleep 1
i=$(($i + 1))
done
exit
各ループの後に新しい行を作成する代わりに、それ自体の上にdate
を表示します。