Как найти каталог, в котором находится скрипт Bash, из скрипта

Kak Najti Katalog V Kotorom Nahoditsa Skript Bash Iz Skripta



При работе со скриптами bash полезно знать расположение скрипта. Это может быть особенно полезно при работе с относительными путями к файлам или при попытке выполнить другие скрипты или команды внутри скрипта. В этой статье мы рассмотрим несколько различных способов определения каталога сценария bash из самого сценария.

Как найти каталог, в котором находится скрипт Bash, из скрипта

При написании сценариев bash вам может потребоваться расположение сценария для автоматизации различных задач. В Linux есть два типа путей:

  • Путь родственников: Relative — это текущий рабочий каталог.
  • Абсолютный путь: Это полный путь к каталогу и файлам.

Один из наиболее распространенных способов определить местоположение bash-скрипта — использовать pwd команда. pwd команда ( распечатать рабочий каталог) покажет текущий каталог.







Таким образом, во многих ситуациях простое использование pwd команда не работает, так как она дает только путь к текущему рабочему каталогу.



Например, если скрипт находится в Загрузки каталог и выполняется из Рабочий стол то вывод будет содержать /home/usr/Рабочий стол не расположение файла сценария bash, который /home/usr/Загрузки .



Это руководство посвящено получению пути к каталогу, в котором находится файл сценария bash, из сценария.





Как получить путь к каталогу, где находится файл сценария Bash

Другой способ определить каталог Bash-скрипта — использовать имя команда. имя Команда принимает путь к файлу в качестве аргумента и возвращает часть пути к каталогу.

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



Для получения более подробной информации о имя выполните следующие команды в терминале:

$ мужчина имя

Только имя работать не будет, нужна другая команда, т.е. ссылка для чтения . ссылка для чтения команда print разрешила символическую ссылку. Получите больше информации об этой команде, выполнив:

$ мужчина ссылка для чтения

Сейчас, создать сценарий :

$ судо нано myScript.sh

И введите:

#!/бин/баш

эхо 'Путь сценария bash $(dirname -- '$(readlink -f – '$0') ' ; ) ';

Для запуска скрипта используйте:

$ бить myScript.sh

Давайте изменим каталог и посмотрим, что получится на выходе:

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

Выход /home/сэм/рабочий стол тогда как файл сценария присутствует в /дом/сэм каталог.

Заключение

В заключение, есть несколько способов определить каталог bash-скрипта из самого скрипта. имя вместе с ссылка для чтения Утилита может использоваться для определения каталога скрипта. Однако просто используя pwd команда не работает, так как она дает только текущий рабочий каталог.