Bazıları Linux kabuğunda kaçan karakterde sahne arkasında neler olduğunu açıklayabilir mi? Aşağıdakini denedim ve çokça devam ettim, neler olup bittiğini anlamada başarılı olamadım:
root@sv01:~# echo -e "\ Hello!"
\ Hello!
root@sv01:~# echo -e "\\ Hello!"
\ Hello!
root@sv01:~# echo -e "\\\ Hello!"
\ Hello!
root@sv01:~# echo -e "\\\\ Hello!"
\ Hello!
root@sv01:~# echo -e "\\\\\ Hello!"
\\ Hello!
root@sv01:~# echo -e "\\\\\\ Hello!"
\\ Hello!
root@sv01:~# echo -e "\\\\\\\ Hello!"
\\ Hello!
root@sv01:~# echo -e "\\\\\\\\ Hello!"
\\ Hello!
root@sv01:~# echo -e "\\\\\\\\\ Hello!"
\\\ Hello!
root@sv01:~# echo -e "\n Hello!"
Hello!
root@sv01:~# echo -e "\\n Hello!"
Hello!
root@sv01:~# echo -e "\\\n Hello!"
\n Hello!
Orada tamamen kayboldum, örneğin, neden üç ters eğik çizgi sadece bir eğik çizgi veriyor? Beklerdim: ilk ikisi bire kaçacak, üçüncüsü kaçacak hiçbir şey bulamayacak, böylece bir eğik çizgi kalacaktır (ilk deneyde çizgi), ama olan şey, üçüncü olanın sadece ortadan kaybolması.
Neden dörtte bir ters eğik çizgi alıyorum \\\\ Hello
? Her çiftin bir ters eğik çizgi -> iki ters eğik çizgi vermesini beklerdim.
Ve neden kaçmak için son durumda üç ters eğik çizgiye ihtiyacım var? kaçmak için arka planda ne oluyor? ve durumdan nasıl farklı \\n
?
Önceki satırlarda neler olup bittiğini açıkladığınız için teşekkür ederim.
echo -e
güvenli değil: echo
Her iki takdirde standardına uygun olarak davranır posix
ve xpg_echo
çalışma zamanı seçenekleri etkindir veya eşdeğer inşa zamanlı seçenekleri ile derlenmiş eğer. Bunun printf
yerine güvenli uygulama kullanmaktır - bunun yerine nasıl değiştirileceğini açıklayan yukarıdaki bağlantının UYGULAMA KULLANIMI ve RATIONALE bölümlerine printf
bakın echo
.
echo -e
davranış hiçbir şekilde standartlarla tanımlanmamıştır - bkz. pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html . Girdilerin herhangi bir yerinde değişmez bir ters eğik çizgi varsa çıktı tamamen uygulama tarafından tanımlanır ve izin verilen tek seçenek-n
(standartlara uygun bir uygulamanın çıktılarındaecho -e
yazdırılacağı anlamına gelir-e
).