Ho uno script doSmth
in /usr/bin
. È possibile ottenere e stampare la directory da cui è stato chiamato lo script ?
Quindi, se io chiamo doSmth
dal /home/me
l'uscita sarà /home/me
.
Ho uno script doSmth
in /usr/bin
. È possibile ottenere e stampare la directory da cui è stato chiamato lo script ?
Quindi, se io chiamo doSmth
dal /home/me
l'uscita sarà /home/me
.
Risposte:
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, pwd
lo 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 pushd
e popd
.
cd
due volte)