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

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

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

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

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

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

 cd "$MYPATH/test" 

Объяснение:

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

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

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