Какая оболочка используется в Jenkins при вызове команды shell
? Я использую Jenkins на машине с Linux.
Какую оболочку использует Дженкинс?
Ответ 1
С помощью кнопки справки script: Запускает оболочку script (по умолчанию sh, но это настраивается) для создания проекта.
Если вы перейдете в Manage Jenkins → Configure System, вы найдете вариант (называемый "исполняемый файл Shell" ), чтобы установить имя или абсолютный путь к оболочке, которую вы хотите использовать ваши сценарии оболочки...
Для моей системы без настройки этой опции... она использует bash!
Ответ 2
Просто объявите свою оболочку в первой строке вашего script, как и в любом файле оболочки script:
#!/bin/bash
Ответ 3
Я попробовал распечатать env, добавив следующую команду оболочки в мою сборку Jenkins.
env
Результат показал, что для моего экземпляра SHELL был установлен tcsh
.
Ответ 4
Дженкинс по умолчанию ищет sh
в переменной среды PATH
, однако результат (например, /bin/sh
) может указывать на разные оболочки. Например, на Ubuntu 6.10 или новее, /bin/sh
является символической ссылкой на Dash.
Итак, для вопроса "какая оболочка используется в Дженкинсе...", это зависит. Чтобы избежать неопределенности, вы можете: (возьмите Bash в качестве примера)
- Явным образом настройте исполняемый файл оболочки в "Управление Jenkins" > "Настроить систему" > "Shell" ( "Shell" ) "Shell" , например,
/bin/bash
. (общесистемная конфигурация) - Следует использовать строку shebang для указания интерпретатора, например,
#!/usr/bin/env bash
(для задания)
Ответ 5
Вы можете установить оболочку по умолчанию, используя Jenkins> Управление Jenkins> Настроить систему> Исполняемый файл оболочки.
Для заданий, использующих оболочку, отличную от стандартной, начните шаг сборки оболочки Выполнить с шебанга, например:
#!/usr/bin/tcsh -e -x
command1
command2
...
Вы даже можете использовать /usr/bin/env
для использования, скажем, Python:
#!/usr/bin/env python3
Помните, что после #!
не должно быть пробела #!
:
#! /usr/bin/tcsh # Wrong
Это даст ошибку,
java.io.IOException: Cannot run program ""
Я проверял выше на Дженкинс 1.625.3
Ответ 6
Я запускаю jenkins с Redhat, так как jenkins не устанавливает пользователя с помощью оболочки по умолчанию, которую вы должны добавить, когда вы входите в систему как пользователи jenkins su-jenkins -s/bin/bash