Jenkins는 어떤 셸을 사용합니까?
shell
명령을 호출 할 때 Jenkins에서 사용되는 셸은 무엇입니까 ? Linux 컴퓨터에서 Jenkins를 실행하고 있습니다.
"셸 실행"섹션의 도움말 / 물음표 아이콘에서 :
프로젝트 빌드를위한 쉘 스크립트 (기본값은 sh이지만 구성 가능)를 실행합니다.
Jenkins 관리-> 시스템 구성으로 이동하면 쉘 스크립트에서 사용할 쉘의 이름 또는 절대 경로를 설정하는 옵션 ( "쉘 실행 파일"이라고 함)을 찾을 수 있습니다.
이 옵션을 구성하지 않은 내 시스템에서는 bash를 사용합니다!
셸 스크립트 파일 에서처럼 스크립트의 첫 번째 줄에 셸을 선언하기 만하면됩니다.
#!/bin/bash
Jenkins 빌드에 다음 셸 명령을 추가하여 env를 인쇄 해 보았습니다.
env
출력은 tcsh
내 인스턴스 에 대해 SHELL이로 설정되었음을 보여줍니다 .
에 대한 기본 봐서는 젠킨스 sh
에서 PATH
환경 변수, 그러나 결과 (예 /bin/sh
) 다른 조개를 가리 수 있습니다. 예를 들어 Ubuntu 6.10 이상에서는 /bin/sh
Dash에 대한 심볼릭 링크입니다.
따라서 "Jenkins에서 사용되는 쉘 ..."이라는 질문에 대해서는 상황에 따라 다릅니다. 불확실성을 피하기 위해 다음을 수행 할 수 있습니다. (Bash를 예로 들어)
- Jenkins 관리> 시스템 구성> 셸> 셸 실행 파일에서 셸 실행 파일을 명시 적으로 구성합니다 (예 :
/bin/bash
. (시스템 전체 구성) - 통역사가 사용되어야 함을 지정하려면 shebang 라인을 사용하십시오
#!/usr/bin/env bash
( 예 : 작업에 따라 다름).
Jenkins> Jenkins 관리> 시스템 구성> 셸 실행 파일을 사용하여 기본 셸을 설정할 수 있습니다 .
기본값과 다른 셸을 사용하는 작업의 경우 다음 과 같이 shebang으로 셸 빌드 실행 단계를 시작합니다 .
#!/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 ""
Jenkins 1.625.3에서 위의 내용을 테스트했습니다.
Jenkins는 기본 셸을 사용하여 사용자를 설치하지 않기 때문에 Redhat과 함께 jenkins를 실행하고 있습니다. jenkins 사용자로 로그인 할 때 추가해야합니다. su-jenkins -s / bin / bash
참조 URL : https://stackoverflow.com/questions/12455932/what-shell-does-jenkins-use
'programing' 카테고리의 다른 글
stdout과 stderr을 쉘 스크립트의 두 가지 다른 프로세스로 파이프합니까? (0) | 2021.01.19 |
---|---|
epoll의 에지 트리거 옵션의 목적은 무엇입니까? (0) | 2021.01.19 |
for 루프에서 오류 건너 뛰기 (0) | 2021.01.19 |
Android Gradle 빌드 전에 작업을 실행 하시겠습니까? (0) | 2021.01.19 |
테이블 오버플로시 가로 스크롤 (0) | 2021.01.19 |