GNU/Linux >> Linux Esercitazione >  >> Linux

Ottieni il percorso completo da Bash Script?

Ho uno script bash che funziona con percorsi relativi. Deve avere una directory di lavoro uguale alla directory in cui è archiviato lo script. Funziona bene fintanto che lo avvio dal prompt, perché posso prima fare cd nella directory dello script. Tuttavia, quando creo un collegamento simbolico allo script in /etc/cron.hourly, lo script si interrompe.

Ho bisogno di un modo per modificare la directory dello script bash nella directory in cui è archiviato lo script. Tuttavia, finora non ho avuto successo. C'è un modo semplice per farlo, anche se lo script viene chiamato da cron tramite un collegamento simbolico?

Risposta accettata:

Dovresti essere in grado di farlo.

  • Il parametro $0 si espande al percorso completo (incluso il nome) dello script così come è stato invocato.
  • La funzione di shell incorporata test (o [ ] ) può verificare se un percorso è un collegamento simbolico usando -L
  • ls -l , se applicato a un collegamento simbolico, darà una singola riga di output con il vero percorso come campo finale.

Questo è abbastanza per scoprire la posizione della fonte. Naturalmente, potrebbe essere un collegamento simbolico, che richiederebbe di farlo in modo ricorsivo...


Linux
  1. Perché non posso usare Cd in uno script Bash??

  2. Opzione Rsync sconosciuta dall'esecuzione dello script Bash?

  3. Come ottenere il percorso completo di un file?

  4. Apri Vim dall'interno di uno script di shell Bash

  5. Come ottengo la directory assoluta di un file in bash?

Come ottenere il nome del file dal percorso completo in Linux

Come trovare il percorso completo del programma C++ Linux dall'interno?

accesso automatico alla finestra mobile all'interno di uno script bash

Come eseguire uno script bash?

Come estrarre il nome del file senza l'estensione da un percorso completo?

Come eseguire uno script bash tramite percorso assoluto?