Acabo de abrir un script de shell heredado (escrito en el antiguo ksh88 en Solaris) y encontré lo siguiente repetido en todo el código:
[ -f $myfile ] && \rm -f $myfile
La barra invertida que se escapa me parece extraña.
Sé que es deliberado, ya que este tipo de escape (aparentemente inútil) se repite en todo el código. El autor original se fue hace mucho tiempo, no puedo ponerme en contacto con él para preguntarle.
¿Es esto simplemente una idiosincrasia divertida del autor o es una especie de buena práctica obsoleta que tuvo sentido en algún momento? ¿O tal vez es realmente la forma recomendada de hacer las cosas y me falta algo por completo?
shell-script
quoting
ksh
rahmu
fuente
fuente
rm
por ruta completa.Respuestas:
Esto se usa para la protección de alias:
fuente
En general, es una buena práctica incluir algunas salvaguardas para rm, que generalmente se logra mediante alias. En entornos multiusuario, a menudo verá muchas de estas protecciones en su lugar.
Para un profesional de scripting de shell, a menudo es útil para uno deshabilitar estas salvaguardas ya que presumiblemente saben lo que están haciendo. Esto, como se mencionó, se logra al anteponer el comando con a
\
.Contrariamente a la sugerencia de @ Sorpigal, definitivamente recomendaría no desarmar los alias, para que el script no le devuelva al usuario sus salvaguardas. Además, el uso de una ruta completa también es imprudente ya que rm puede estar en una ruta auxiliar por una razón, es decir, GNU rm vs. BSD rm. Anularlo con un camino estricto sería anular el propósito de tener PATH, es decir, escalar y manejar muchas arquitecturas, entornos y usuarios.
fuente
rm
no es una práctica buena, sino bastante mala y desafortunada.