Иногда вам может понадобиться получить текущий рабочий каталог в сценарии оболочки. Это можно легко сделать с помощью команды pwd или переменной окружения PWD. В этой статье мы рассмотрим, как получить текущий каталог в сценарии оболочки, используя эти два метода.
Как получить текущий каталог в сценарии Bash
Для получения текущей рабочей директории вы можете использовать встроенную команду оболочки pwd или переменную оболочки $PWD в соответствии с вашими требованиями. Ниже мы рассмотрим, как использовать обе эти команды.
Вот пример их использования в терминале.
1 | pwd |
или
1 | echo $PWD |
Пример использования
Теперь мы создадим bash-скрипт для демонстрации двух вышеуказанных способов получения текущего каталога.
Создайте сценарий оболочки
Откройте терминал и выполните следующую команду для создания пустого сценария оболочки.
1 | nano current_dir.sh |
Создание ценария
Добавьте следующие строки в ваш сценарий.
1 2 3 4 5 6 7 8 9 10 | !/bin/sh echo "текущий каталог с помощью команды pwd" echo $(pwd) echo "текущий каталог с помощью переменной PWD" echo $PWD echo "предыдущий рабочий каталог с помощью переменной OLDPWD" echo $OLDPWD |
Сохраните и закройте файл. В приведенном выше коде мы задаем среду выполнения сценария оболочки. Затем мы отображаем текущий путь с помощью команды pwd. Затем отображаем текущий рабочий каталог с помощью переменной PWD. Наконец, мы отображаем предыдущий рабочий каталог с помощью переменной OLDPWD.
Сделать сценарий оболочки исполняемым
Выполните следующую команду, чтобы сделать его исполняемым.
1 | sudo chmod +x current_dir.sh |
Запустите сценарий
Запустите сценарий оболочки для проверки вывода
1 | ./current_dir.sh |
Вы также можете хранить результат любой из этих команд в переменной и добавлять строки, чтобы получить больше значений пути. Вот пример
1 2 3 4 5 6 7 | #!/bin/sh path=$PWD echo $PWD subpath="/data" new_path = $path$subpath echo $new_path |
Заключение
В этой статье мы узнали, как получить текущий рабочий каталог в сценарии оболочки с помощью команды pwd, а также с помощью переменной окружения PWD. Вы можете использовать любую из них в зависимости от ваших требований. Они оба дают одинаковый результат. Вы также можете добавлять к ним другие строки для построения новых значений пути.