Je viens d'ouvrir un script shell hérité (écrit en ancien ksh88 sur Solaris) et j'ai trouvé ce qui suit répété tout au long du code:
[ -f $myfile ] && \rm -f $myfile
La barre oblique inverse qui m'échappe me semble étrange.
Je sais que c'est délibéré, car ce type d'échappement (apparemment inutile) est répété tout au long du code. L'auteur original est parti depuis longtemps, je ne peux pas le contacter pour lui demander.
Est-ce simplement une idiosyncrasie amusante de l'auteur ou est-ce une sorte de bonne pratique déconseillée qui avait du sens à un moment donné? Ou peut-être est-ce en fait la façon recommandée de faire les choses et il me manque quelque chose?
shell-script
quoting
ksh
rahmu
la source
la source
rm
par chemin complet.Réponses:
Ceci est utilisé pour la protection des alias:
la source
Il est généralement recommandé de mettre en place des garanties pour rm, ce qui est généralement obtenu par aliasing. Dans les environnements multi-utilisateurs, vous verrez souvent bon nombre de ces protections en place.
Pour un praticien de script shell, il est souvent utile pour l'un de désactiver ces protections car, vraisemblablement, il sait ce qu'il fait. Ceci, comme mentionné, est accompli en faisant précéder la commande d'un
\
.Contrairement à la suggestion de @ Sorpigal, je déconseillerais définitivement de supprimer les alias, de peur que le script ne redonne à l'utilisateur ses garanties. De plus, l'utilisation d'un chemin complet est également imprudente car rm peut être dans un chemin auxiliaire pour une raison - c'est-à-dire GNU rm contre BSD rm. Le remplacer par un chemin strict reviendrait à contrecarrer le but d'avoir des CHEMINS, à savoir, faire évoluer et gérer de nombreuses architectures, environnements et utilisateurs.
la source
rm
n'est pas une bonne pratique, mais assez mauvaise et malheureuse.