Differenza tra nome file e. nome file nel terminale macOS

3

Sono principiante di MacOS. (Sto usando mac OS alta sierra 10.13.6) Ho installato un software. Hanno detto di inizializzare il software

. /path/setsas.sh

Non ci penso. e lo spazio, quindi ho appena eseguito

path / setsas.sh

Sembrava funzionare, ma dopo non ho potuto eseguire alcun comando del software. Ho scoperto che avrei dovuto eseguire il comando per così dire, e dopo ciò andava bene. Allora, questi. e lo spazio significa qui, e qualsiasi ipotesi sul perché non sia stato possibile eseguire alcun comando all'inizio sebbene il file sembrasse funzionare? Lo so . a volte significa cartella corrente, ma in questo caso non sembra.

    
posta Septacle 13.09.2018 - 02:00
fonte

2 risposte

3

. /path/setsas.sh carica le variabili e le funzioni dallo script nella tua sessione shell corrente. È come eseguire source /path/setsas.sh . L'esecuzione di path/setsas.sh d'altra parte genera un nuovo processo. Le variabili e le funzioni non saranno accessibili dalla tua shell corrente. Ecco perché i comandi non funzionavano per te.

    
risposta data 13.09.2018 - 07:54
fonte
-2

Quando "inserisci semplicemente un comando", OS / X (come qualsiasi Unix / Linux) usa la variabile di ambiente $PATH per specificare i percorsi da cercato per trovarlo - a meno che non sia un comando bash / shell integrato.

Quando specifichi ./command , questo è un riferimento esplicito a un particolare file in una particolare directory - "il" corrente "." $PATH non viene utilizzato e il comando non è considerato "integrato"

Allo stesso modo, ~/command è un riferimento esplicito, questa volta utilizzando "~" come collegamento a "mia home directory". Ancora una volta, $PATH non viene utilizzato.

(Unrelated ...) Il comando source shell richiede un riferimento specifico a un file e fa sì che la shell legga ed esegua tutti i comandi in quel file. (Ad esempio, se si modifica il file "bash profile" e si desidera incorporarlo nuovamente senza accedere nuovamente, questo è un modo per farlo).

    
risposta data 14.09.2018 - 16:30
fonte

Leggi altre domande sui tag