Подтвердить что ты не робот

Shell script текущий каталог?

Что такое текущий каталог оболочки script? Я этот текущий каталог, из которого я его назвал? Или этот каталог, где script расположен?

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Если ваш script не переключает каталоги, он будет печатать каталог, в котором вы запускаете его из.