Запуск команд из корневого каталога новой рабочей области

У меня есть сценарий оболочки, в котором cd находится в определенном каталоге для запуска набора файлов python. Теперь, когда я сделал это для управления исходным кодом (сценарий и файлы python), я клонирую это в рабочее пространство Jenkins и хочу запускать файлы оттуда. Сценарий в настоящее время записывается в неподвижный cd в локальный репозиторий, а не в рабочее пространство Jenkins, поэтому клонирование репозитория становится излишним. Как написать команду cd, чтобы он распознал файл, существующий в рабочем пространстве Jenkins, и запускает его оттуда вместо локальных файлов, существующих на одной машине

One Solution collect form web for “Запуск команд из корневого каталога новой рабочей области”

Если я правильно понял, вы хотите, чтобы ваш test каталог находился в том же месте, что и скрипт.

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

 MYPATH=`dirname \`readlink -e "$0"\`` 

Тогда вы можете сделать, например

 cd "$MYPATH/test" 

Объяснение:

$0 – это имя (включая путь) скрипта.

readlink -e /foo/bar дает вам абсолютное расположение / foo / bar (также разрешает любые символические ссылки).

dirname отключает файловую часть и оставляет вам путь

  • лучше несколько заменить фигурные скобки
  • Обертка Bash, которая будет форматировать вывод другой программы
  • Сценарий оболочки: если несколько условий
  • Есть ли простой способ сделать эквивалент `sed ...` заменяя одну и ту же строку несколькими значениями?
  • Примените SHA256 и Base64 к строке в скрипте
  • Есть ли удобный инструмент командной строки для управления заданиями Cron?
  • Печать диапазонов вывода с эхом
  • Найти определенный файл в ближайшем предке текущего рабочего каталога
  • Bash: преобразовать строку (номер версии) в целое число
  • Почему мое условие всегда ложно?
  • Как запустить скрипт на tty вместо запроса входа в systemd?
  • Interesting Posts

    Как фоновый процесс может узнать свой собственный PID?

    Отказ от доступа к MySQL (CentOS)

    Ошибка, связанная с libreadline Ошибка при установке приложения «seedync»

    Почему вы НИКОГДА не редактируете файл / etc / shadow напрямую?

    Какой шестнадцатеричный код для раздела / boot

    Как найти / перечислить все файлы в файловой системе с определенным SELinux «fcontext»

    Изменение каталога для файлов очереди печати в Linux

    startx autologin не запускается в / etc / inittab после обновления Debian Jessie

    Как заставить startx открывать новую сессию X в tty7 на малине Pi?

    grep awk или sed CSV Row, содержащий определенную часть веб-адреса

    Как я могу автоматизировать отправку похожих писем с одним измененным словом?

    Автоматическое управление белым списком (например, в tinyproxy) динамических IP-адресов?

    Он-лайн персональные страницы с терминала

    Ошибка DNS-сервера Kerberos с / etc / hosts

    Как установить драйвер камеры из файла ac и что делает этот драйвер?

    Linux и Unix - лучшая ОС в мире.