Eko komutu ile satır başı


9

\rAşağıdaki gibi seçenek (satır başı) ile yankı komutu uyguluyordum .

echo -e "This is \r my college"

çıktı:

 my college

ama daha önce \raşağıdaki gibi bir kelime daha eklediğimde

echo -e "This is the \r my college"

Sonra bana şöyle çıktı verir:

 my college the

Başka bir örnek

echo -e "This is \r valid data"
 valid data

echo -e "This is not a \r valid data"
 valid data a

Yani, buraya taşınmanın asıl amacının ne olduğunu bilmek istedim?


Bu tekrarlanamaz. İkinci komut ␣my college, tıpkı birincisi gibi çıktıyla sonuçlanır .
Kusalananda

3
echo -eherkesin bildiği gibi dayanılmaz. Bunun printfyerine muhtemelen kullanmalısınız .
tripleee

Yanıtlar:


20

\rBaşka bir şey - sadece bir "satırbaşı", olmasıdır. Bu \r, zaten yazdırılmış olanın başlangıcının üzerine yazılanın ne olduğu anlamına gelir .

Örneğin:

echo -e "1234\r56"

Gösterecek:

5634

echoyazdırdıktan 1234sonra satırın başına geri döndü 56ve üstüne yazdırdı 12.

Yeni bir satır için \nbunun yerine deneyin . Alanlara da gerek yok. Örneğin:

echo -e "This is\nmy college"

Hangi çıktı:

This is
my college

Satır başı şu gibi şeyler için yararlıdır:

#!/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

Bu, dateher döngüden sonra yeni bir satır oluşturmak yerine kendi başına görüntülenecektir .


1
sysvinit tarafından sağlanan işlevlerde satır başı da kullanılır. Örneğin fonksiyon echo_successile ilgili /etc/init.d/functions.
Trevor Boyd Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.