2012-03-27 22 views

risposta

12

La directory (iniziale) corrente dello script di shell è la directory da cui è stato chiamato lo script.

7

Si può fare da soli controllando l'uscita da pwd durante l'esecuzione. Questo stamperà la directory che si è attualmente in. Non la sceneggiatura.

Se il tuo script non cambia directory, stampa la directory che hai scaricato da da.

66

Come già accennato, la posizione sarà da dove è stato chiamato lo script. Se si desidera che il riferimento dello script sia il percorso di installazione, è piuttosto semplice. Di seguito è riportato un frammento che stamperà il PWD e la directory installata

#!/bin/bash 
echo "Script executed from: ${PWD}" 

BASEDIR=$(dirname $0) 
echo "Script location: ${BASEDIR}" 
15

La maggior parte delle risposte si ottiene il percorso corrente e sono sensibili al contesto. Per eseguire il tuo script da qualsiasi directory, usa lo snippet qui sotto.

DIR="$(cd "$(dirname "$0")" && pwd)" 

Con il passaggio delle directory in una subshell, possiamo allora chiamare pwd e ottenere il percorso corretto dello script indipendentemente dal contesto.

È quindi possibile utilizzare $DIR come "$DIR/path/to/file"

Problemi correlati