>_ IzzyLab

Практическое задание

Кривой PATH ломает скрипт

средне

Скрипт /opt/tool/deploy.sh падает с «command not found» на утилите mytool, хотя она установлена в /opt/tool/bin. Проблема в PATH внутри скрипта. Почини так, чтобы deploy.sh отрабатывал успешно.

Что потренируешь:
  • path
  • переменные окружения
  • command not found
  • shell-скрипты
  • поиск исполняемых файлов

Разбор темы

Когда команду вызывают по короткому имени, оболочка ищет исполняемый файл только в каталогах, перечисленных в переменной PATH — «command not found» почти всегда значит не «не установлено», а «не там, где шелл ищет». Чинить это надо в среде того процесса, который запускает команду (внутри самого скрипта), а не в личном .bashrc: неинтерактивный процесс раннера твои интерактивные настройки шелла не подхватит. Ключевой принцип — расширять PATH, дописывая новый каталог к уже существующему значению (PATH="новый:$PATH"), а не затирать его целиком, иначе перестанут находиться остальные утилиты; альтернатива — обращаться к бинарнику по полному пути.

Что проверяется

  1. deploy.sh отрабатывает

Как это выглядит