Я только что открыл устаревший скрипт оболочки (написанный на старом ksh88 на Solaris) и обнаружил, что во всем коде повторяется следующее:
[ -f $myfile ] && \rm -f $myfile
Убегающий обратный слеш кажется мне странным.
Я знаю, что это преднамеренно, так как этот вид (очевидно бесполезный) экранирования повторяется по всему коду. Первоначальный автор давно ушел, я не могу связаться с ним, чтобы спросить его.
Это просто забавная идиосинкразия автора или это какая-то устаревшая хорошая практика, которая имела смысл в какой-то момент времени? Или, может быть, это действительно рекомендуемый способ, и я что-то упускаю вообще?
shell-script
quoting
ksh
rahmu
источник
источник
rm
по полному пути.Ответы:
Это используется для защиты псевдонимов:
источник
Обычно хорошей практикой является использование некоторых защитных механизмов для rm, что обычно достигается за счет псевдонимов. В многопользовательских средах вы часто будете видеть многие из этих средств защиты.
Для специалиста по написанию сценариев оболочки часто полезно отключить эти меры безопасности, так как они, по-видимому, знают, что делают. Как уже упоминалось, это достигается путем добавления команды к команде
\
.Вопреки предложению @ Sorpigal, я бы определенно посоветовал не удалять псевдонимы, чтобы скрипт не смог вернуть пользователю свои гарантии. Кроме того, использование полного пути также нецелесообразно, так как rm может быть во вспомогательном пути по причине - то есть GNU rm против BSD rm. Переопределить его строгим путем - значит потерять цель наличия PATH, а именно масштабировать и обрабатывать многие архитектуры, среды и пользователей.
источник
rm
это не очень хорошая, но довольно плохая и неудачная практика.