Neden kabuk betiğinde önemsiz karakterler kaçış?


23

Eski bir kabuk betiğini yeni açtım (Solaris'te eski ksh88 ile yazılmış) ve kodun tamamında aşağıdakileri tekrarladım:

[ -f $myfile ] && \rm -f $myfile

Kaçış ters eğik çizgisi bana garip geldi.

Kasıtlı olduğunu biliyorum, çünkü bu türden (görünüşe göre işe yaramaz) kaçma kodun tümü boyunca tekrarlanır. Orijinal yazar çoktan gitti, ona sorması için onunla temasa geçemiyorum.

Bu sadece yazarın komik bir deyimi mi yoksa zamanın bir noktasında bir anlam ifade etmeyen bir tür kullanımdan kaldırılmış iyi uygulama mı? Ya da belki aslında bir şeyler yapmanın önerilen yolu ve tamamen bir şeyi özlüyorum?


3
Bunun için iyi bir neden olsa da, bu yöntemi kullanarak bir komut dosyasında takma ad koruması sağlamak benim "önerilen" dediğim şey değil. Komutun üstündeki diğer adını temizlemek veya rmtam yoldan çağırmak yeterli olacaktır .
Sorpigal

Yanıtlar:


25

Bu takma ad koruması için kullanılır:

$ ls
.bashrc  a  b

$ alias ls
alias ls='ls $LS_OPTIONS'

$ \ls
a   b

5

Genellikle takma işlemiyle elde edilen rm için bazı güvenlik önlemleri almak genellikle iyi bir uygulamadır. Çok kullanıcılı ortamlarda, bu korumaların çoğunu yerinde göreceksiniz.

Bir kabuk komut dosyası uygulayıcısı için, genellikle bu önlemleri etkisiz hale getirmek için muhtemelen ne işe yaradıklarını bildikleri için yararlıdır. Bahsedildiği gibi, bu komutun önüne a basılarak gerçekleştirilir \.

@ Sorpigal'in önerisine aykırı olarak, beynin kullanıcıya güvenlik önlemlerini geri verememesi için takma adların yeniden ayarlanmasını kesinlikle öneriyorum. Ayrıca, bir tam yolun kullanılması, aynı zamanda, rm, bir nedenden ötürü bir yardımcı yol içinde olabileceğinden, yani GNU rm'ye karşı BSD rm olduğu için, akıllıca değildir. Bunu kesin bir yolla geçersiz kılmak, PATH'lerin amacını, yani birçok mimariyi, ortamı ve kullanıcıyı ölçeklendirmek ve idare etmek amacını ortadan kaldırmak olacaktır.


3
Yaygın olmasına rağmen, takma ad rmiyi değil, fakat oldukça fakir ve talihsiz bir uygulamadır.
jlliagre
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.