Ottieni directory da cui è stato chiamato lo script


Risposte:


11

Quando si richiama un comando nella shell, il nuovo processo eredita la directory di lavoro del genitore. Ecco due modi per ottenere la directory di lavoro:

echo "$PWD" # variable
pwd         # builtin command

1

Per "directory è stato chiamato da" sembra che intenda la sua directory di lavoro. Puoi cambiarlo all'interno dello script usando eg cd, ma prima di farlo, pwdlo stamperà. Probabilmente sarà anche nella variabile$PWD

Se hai bisogno della directory di lavoro iniziale dopo averla modificata, salvala nella parte superiore dello script (prima di cambiarla)

#!/bin/bash
initial_wd=`pwd`

# ... do a lot of stuff ...
# ⋮

cd "$initial_wd"

Se lo stai usando per tornare alla directory in cui hai iniziato, vedi anche pushde popd.


3
In bash c'è anche "$ OLDPWD".
Giordania,

@jordanm In effetti c'è, ma non sarà necessariamente la directory di lavoro iniziale (ad esempio, se hai usato cddue volte)
derobert

$ OLDPWD è ciò di cui ho bisogno; Eseguo script bash dal prompt CMD su Win7 e questa era la variabile di ambiente che conteneva la directory da cui eseguo lo script. Saluti
Darren Bishop,
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.