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: echoHer iki takdirde standardına uygun olarak davranır posixve xpg_echoçalışma zamanı seçenekleri etkindir veya eşdeğer inşa zamanlı seçenekleri ile derlenmiş eğer. Bunun printfyerine 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 printfbakın echo.
echo -edavranış 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 -eyazdırılacağı anlamına gelir-e).