У меня есть сценарий 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дважды)