Właśnie otworzyłem starszy skrypt powłoki (napisany w starym ksh88 na Solarisie) i znalazłem następujące powtórzenia w całym kodzie:
[ -f $myfile ] && \rm -f $myfile
Uciekający ukośnik wydaje mi się dziwny.
Wiem, że jest to celowe, ponieważ tego rodzaju (pozornie bezużyteczne) ucieczki powtarzają się w całym kodzie. Pierwotnego autora już dawno nie ma, nie mogę się z nim skontaktować, by go zapytać.
Czy jest to po prostu zabawna osobliwość autora, czy też jest to jakaś przestarzała dobra praktyka, która w pewnym momencie miała sens? A może jest to właściwie zalecany sposób robienia rzeczy i coś zupełnie mi brakuje?
shell-script
quoting
ksh
rahmu
źródło
źródło
rm
pełną ścieżkę.Odpowiedzi:
Służy to do ochrony aliasu:
źródło
Zasadniczo dobrą praktyką jest wrzucanie pewnych zabezpieczeń dla rm, co zwykle osiąga się przez aliasing. W środowiskach dla wielu użytkowników często widzisz wiele z tych zabezpieczeń.
Dla praktyka skryptów powłoki często przydatne jest wyłączenie tych zabezpieczeń, ponieważ prawdopodobnie wiedzą, co robią. Jak wspomniano, osiąga się to poprzez zastąpienie polecenia znakiem
\
.W przeciwieństwie do sugestii @ Sorpigal, zdecydowanie odradzam rozbrajanie aliasów, aby skrypt nie zwrócił użytkownikowi zabezpieczeń. Ponadto użycie pełnej ścieżki jest również nierozsądne, ponieważ rm może znajdować się w ścieżce pomocniczej z jakiegoś powodu - tj. GNU rm vs. BSD rm. Zastąpienie go ścisłą ścieżką oznaczałoby pokonanie celu posiadania PATH, a mianowicie skalowania i obsługi wielu architektur, środowisk i użytkowników.
źródło
rm
jest powszechny, nie jest dobrą, ale dość złą i niefortunną praktyką.