У меня есть сценарий doSmth
в /usr/bin
. Можно ли получить и распечатать каталог, из которого был вызван скрипт ?
Так что если я позвоню, doSmth
с /home/me
выхода будет /home/me
.
У меня есть сценарий doSmth
в /usr/bin
. Можно ли получить и распечатать каталог, из которого был вызван скрипт ?
Так что если я позвоню, doSmth
с /home/me
выхода будет /home/me
.
Ответы:
Под «каталогом, из которого он был вызван», вы, похоже, подразумеваете его рабочий каталог. Вы можете изменить это внутри скрипта, используя, например, cd
но, прежде чем сделать это, pwd
распечатаете его. Это также, вероятно, будет в переменной$PWD
Если после изменения вам понадобится исходный рабочий каталог, просто сохраните его в верхней части вашего скрипта (перед его изменением)
#!/bin/bash
initial_wd=`pwd`
# ... do a lot of stuff ...
# ⋮
cd "$initial_wd"
Если вы используете это, чтобы вернуться в каталог, в котором вы начали, смотрите также pushd
и popd
.
cd
дважды)