t3g1ng
@t3g1ng

Что делает это в bash?

Здравствуйте, подскажите пожалуйста, что делают данные строки в bash:
d=$(dirname $0)

if [ -f "/etc/license" ]; then
echo "The panel is already installed."
exit
fi
  • Вопрос задан
  • 2453 просмотра
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
d=$(dirname $0)
$0 здесь это переменная которая указывает на путь к файлу запущеного скрипта от места откуда был запущен данный скрипт.
Переменной d будет присвоен(=) путь к каталогу запускаемого скрипта, здесь dirname обрежет концовку.
Можешь удивить это добавив вывод переменных
echo "0 = $0"
echo "d = $d"

чтобы увидеть полный путь к каталогу запускаемого скрипта, а не только от места запуска, можно сделать так:
DIR=$(dirname $(readlink -e "$0"))
echo "DIR = $DIR"


по поводу второй части:
if [ -f "/etc/license" ]; then
echo "The panel is already installed."
exit
fi

проверяется условие(if ... then ... fi) на существование файла(-f) по пути "/etc/license", если существует то выведет(echo) сообщение(The panel is already installed.) в консоль и выйдет(exit) из программы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@AVKor
google://bash dirname и т.д.
Ответ написан
Комментировать
gremlintv2
@gremlintv2
-f file - True if file exists and is a regular file.
So yes, -f means file (./$NAME.tar in your case) exists and is a regular file (not a device file or a directory for example).
Если файл "/etc/license существует и не представляет собой устройство либо папку
Вывести надпись: "The panel is already installed."
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы