2012-03-27 4 views

ответ

12

Текущий (начальный) каталог сценария оболочки - это каталог, из которого вы вызвали скрипт.

7

Вы можете сделать это сами, проверив вывод pwd при его запуске. Это напечатает каталог , который вы сейчас находитесь в. Не сценарий.

Если ваш сценарий не переключает каталоги, он распечатает каталог, в котором вы запустили его с.

66

Как уже упоминалось, местоположение будет вызываться из сценария. Если вы хотите, чтобы ссылка на скрипт была установлена, это довольно просто. Ниже приведен фрагмент кода, который будет печатать PWD и установленный каталог

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

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

Большинство ответов получить вам текущий путь и являются контекстно-зависимыми. Чтобы запустить скрипт из любого каталога, используйте приведенный ниже фрагмент.

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

При переключении каталогов в субоболочке, мы можем назвать pwd и получить правильный путь к сценарию вне зависимости от контекста.

Вы можете использовать $DIR как "$DIR/path/to/file"

Смежные вопросы