la risposta di jordanm non è corretta. /etc/profile
non proviene da tutte le shell. Come hai sottolineato, non proviene da csh
, tcsh
- Non ne sono sicuro zsh
. È fornito da sh
derivati Bourne shell ( ), come Korn Shell ( ksh
) e BASH ( bash
). csh
usi /etc/login
. Le persone che tendono ad usare esclusivamente derivati di Borne Shell tendono a dimenticare che esistono altre conchiglie. Aggiungono qualcosa /etc/profile
all'aspettarsi che si applichi a "tutti gli utenti" e poi sono sorpresi quando l'utente strano C Shell (e noi siamo un lotto strano) non ha le cose in cui ha configurato /etc/profile
.
Anche così, le persone tendono a dimenticare l'esistenza di altri gusci derivati da Borne Shell. Se usano bash
o ksh
, si sentono liberi di aggiungere una sintassi /etc/profile
che non è valida in Bourne Shell, come dire definire una variabile ed esportarla sulla stessa riga. Quindi ottieni alcuni script che lo fanno #!/bin/sh
e soffoca sulla sintassi. /etc/profile
dovrebbe attenersi alla sintassi compatibile Bourne Shell.
Allo stesso modo, dovresti attenerci a te stesso .profile
(usa .bash_profile
se vuoi una sintassi bash) - potrebbe essere un po 'di digitazione extra, ma è una digitazione extra che fai tutto in una volta. Riferimento ${HOME}
e non ~
, ecc. Alcune versioni di Unix, cron lavori eseguiti sh
, ogni riga Makefile
viene elaborata da sh
, quindi se si lavora su più versioni di UNIX, è davvero importante mantenere la .profile
shell Bourne compatibile. Come amministratore di sistema, non posso dirti quante volte ho aiutato qualcuno a sistemare la loro .profile
compatibilità con Bourne Shell.
Su Linux, /bin/sh
è un collegamento /bin/bash
e quando lo si esegue, sembra un percorso utilizzato per eseguirlo e (in teoria) si limita solo alle cose supportate da Bourne Shell. Allo stesso modo, vi
su Linux è davvero vim
, di nuovo limitandosi. Occasionalmente vengono visualizzate funzionalità "al vivo". Occasionalmente vim
fingere di fare vi
farà qualcosa che vim
supporta ciò vi
che non accade perché gli autori hanno vim
dimenticato di disabilitarlo in modalità "vi retrocompatibilità". Non sarei sorpreso se bash
fingere di avere sh
caratteristiche simili "bleed through". Non sarebbe sorpreso se alcune funzionalità "funzionassero su Borne Shell su Linux", ma non su un UNIX basato su System V o BSD (AIX, OpenBSD, ecc.).
Does it have positive ... and understood.
Cosa stai cercando di dire qui? Ho capito tutto tranne quel paragrafo.