È solo la mia azienda che fa questo?
No.
C'è un motivo per cui si vuole precisare dove questi comandi estremamente comuni sono?
Sì.
perché dovrei $CAT
per riferirsi a/usr/bin/gatto quando cat
si riferisce già a /usr/bin/cat
?
Sei sicuro cat
si riferisce sempre alla /usr/bin/cat
? Cosa succede se il tuo script viene eseguito in un ambiente in cui c'è un diverso cat
prima nel percorso? O dove c'è semplicemente una directory controllata dall'utente in precedenza nel percorso, dove un utente può installare un comando canaglia cat
? Se il tuo script dovesse mai essere eseguito con privilegi elevati, allora vuoi davvero dare agli utenti a caso la possibilità di fare tutto ciò che vogliono sul tuo sistema?
Sei sicuro che cat
è supposto fare sempre riferimento a /usr/bin/cat
? Se mai lo script fosse installato in un ambiente in cui era necessario un diverso cat
(ad esempio /usr/local/bin/gnucat
), allora preferiresti modificare una riga o venti?
Mi manca qualcosa? Sembra inutilmente ridondante.
Sì, ti manca qualcosa.
Si vorrebbe evitare di scrivere fuori /usr/bin/cat
ovunque si desidera eseguire cat
, e si vorrebbe essere in grado di scegliere un diverso cat
dove necessario (o più probabilmente un diverso make
o grep
o sed
). D'altra parte, si vuole evitare l'influenza esterna potenzialmente pericolosa sul comportamento di uno script affidabile. Definire il percorso completo per il comando in una variabile di shell e quindi utilizzare tale variabile per eseguire il comando realizza questi obiettivi.
fonte
2015-10-13 20:10:37
Grazie! Sapevo che ci doveva essere qualche motivo dietro questo. – R4F6