Come trovare la directory in cui uno script bash si trova all'interno dello script
Mentre gli script bash potrebbero richiedere la posizione dello script per automatizzare varie attività. Esistono due tipi di percorsi in Linux:
Uno dei modi più comuni per determinare la posizione di uno script bash è usare il PWD comando. IL PWD comando (Stampa Directory di lavoro) Mostrerà la directory corrente.
Quindi, in molte situazioni semplicemente usando PWD Il comando non funziona in quanto dà solo il percorso della directory di lavoro attualmente.
Ad esempio, se lo script è in Download directory ed essere eseguito dal Desktop quindi l'output conterrà il file /home/usr/desktop non la posizione del file di script bash che è /home/usr/download.
Questo tutorial consiste nel ottenere il percorso della directory in cui si trova il file di script bash dall'interno dello script.
Come ottenere il percorso della directory in cui si trova il file di script bash
Un altro modo per determinare la directory di uno script bash è usare il dirname comando. IL dirname Il comando prende un percorso del file come argomento e restituisce la parte della directory del percorso.
Usare dirname comando per determinare la directory di uno script, si chiama il comando con il percorso fino agli ultimi componenti non slash allo script come argomento.
Per maggiori dettagli su dirname eseguire i seguenti comandi nel terminale:
$ Man Dirname
Soltanto dirname non funzionerà, abbiamo bisogno di un altro comando che è readlink. IL readlink Il comando stampato ha risolto il collegamento simbolico. Ottieni maggiori informazioni su questo comando eseguendo:
$ man readlink
Ora, Crea uno script:
$ sudo nano myscript.sh
E tipo:
#!/Bin/Bash
echo "The Bash Script Path is $ (dirname -" $ (readlink -f - "$ 0") ";)";
Per eseguire l'uso dello script:
$ Bash MyScript.sh
Cambiamo la directory e vediamo qual è l'output:
Nota: In un caso lo script sopra non funzionerà se il file viene fornito invece di eseguire in quanto può essere visto nel seguente output:
L'output è /home/sam/desktop mentre il file di script è presente in /Home/Sam directory.
Conclusione
In conclusione, ci sono diversi modi per determinare la directory di uno script bash dall'interno dello script stesso. IL dirname insieme a readlink l'utilità può essere utilizzata per determinare la directory di uno script. Tuttavia, semplicemente usando PWD Il comando non funziona in quanto fornisce solo la directory di lavoro attualmente.