Acabei de abrir um script de shell herdado (escrito no antigo ksh88 no Solaris) e encontrei o seguinte repetido em todo o código:
[ -f $myfile ] && \rm -f $myfile
A barra invertida me parece estranha.
Eu sei que é deliberado, já que esse tipo de fuga (aparentemente inútil) se repete por todo o código. O autor original já se foi há muito tempo, não consigo entrar em contato com ele para perguntar.
Isso é simplesmente uma idiossincrasia engraçada do autor ou é algum tipo de boa prática preterida que fazia sentido em algum momento? Ou talvez seja realmente a maneira recomendada de fazer as coisas e estou perdendo alguma coisa?
shell-script
quoting
ksh
rahmu
fonte
fonte
rm
pelo caminho completo.Respostas:
Isso é usado para proteção de alias:
fonte
Geralmente, é uma boa prática aplicar algumas salvaguardas para a rm, o que normalmente é alcançado por meio de alias. Em ambientes multiusuários, muitas vezes você vê muitas dessas proteções em vigor.
Para um profissional de script de shell, geralmente é útil desabilitar essas salvaguardas, pois, presumivelmente, eles sabem o que estão fazendo. Isso, como mencionado, é realizado precedendo o comando com um
\
.Ao contrário da sugestão de @ Sorpigal, eu recomendaria definitivamente não desabilitar os aliases, para que o script não devolva ao usuário suas salvaguardas. Além disso, o uso de um caminho completo também é imprudente, pois rm pode estar em um caminho auxiliar por uma razão - por exemplo, GNU rm vs. BSD rm. Substituí-lo por um caminho estrito seria derrotar o propósito de ter PATHs, ou seja, escalar e manipular muitas arquiteturas, ambientes e usuários.
fonte
rm
não é uma prática boa, mas muito ruim e lamentável.