Shell

echo 命令輸入

  • December 10, 2017

\r我正在練習帶有選項(輸入)的echo 命令,如下所示。

echo -e "This is \r my college"

輸出:

my college

\r但是當我在下面添加一個單詞時

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在自身的頂部,而不是在每個循環之後創建一個新行。

引用自:https://unix.stackexchange.com/questions/374592