Come si omette "./" durante l'esecuzione di script nella directory corrente


10

In alcuni tutorial su Internet possono eseguire uno script nella directory corrente senza fare:

./script

Come si omette? Sto usando CentOS 5.6 x64. Voglio eseguirlo in questo modo

script


3
Si noti che questa è quasi sempre una cattiva idea, soprattutto per l'utente root.
David Schwartz,

1
Qual è lo scopo / la storia dietro il ./ comunque?
Pete,

Sono solo curioso di
sapere

L'ultimo commento potrebbe essere una domanda a parte IMHO: è una cosa importante da capire sull'esecuzione dei programmi in generale!
rozcietrzewiacz,

4
@Pete (e Aivan): in Linux / UNIX, la shell esegue i programmi solo se conosce il percorso (usando un percorso specificato o cercando la variabile PATH). Non presume che tu voglia cercare nella directory corrente come fa Windows. Cerca esattamente ciò che gli chiedi di cercare tramite la variabile PATH. '' è un riferimento alla directory corrente. Quindi quando si digita './script.sh', si indica il percorso.
Kasius,

Risposte:


26

Qualsiasi:

  1. Aggiungi la directory di lavoro corrente al tuo PERCORSO: PATH=${PATH}:.(questo è considerato un rischio per la sicurezza)
  2. Aggiungi esplicitamente il percorso contenente il tuo script alla variabile PATH (questo non è un rischio per la sicurezza se l'accesso in scrittura a quella directory è limitato)
  3. Metti il ​​tuo script nel posto giusto dove PATH punta già a (~ / bin, / usr / local / bin, ...)

L'ultima opzione è probabilmente la migliore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.