Получить абсолютный путь в сценариях Bash

Чтобы получить абсолютный путь в сценарии Bash, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: использование команды readlink

#!/bin/bash
absolute_path=$(readlink -f "$0")
echo "Absolute path: $absolute_path"

Метод 2: использование команды realpath

#!/bin/bash
absolute_path=$(realpath "$0")
echo "Absolute path: $absolute_path"

Метод 3: использование команды pwdс cd

#!/bin/bash
script_dir=$(cd "$(dirname "$0")" && pwd)
echo "Absolute path: $script_dir/$(basename "$0")"

Метод 4. Использование команды dirnameс readlink

#!/bin/bash
script_dir=$(dirname "$(readlink -f "$0")")
echo "Absolute path: $script_dir/$(basename "$0")"

Метод 5: использование переменной BASH_SOURCE

#!/bin/bash
script_dir=$(dirname "${BASH_SOURCE[0]}")
absolute_path=$(cd "$script_dir" && pwd)
echo "Absolute path: $absolute_path/$(basename "${BASH_SOURCE[0]}")"

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