programing

Jenkins는 어떤 셸을 사용합니까?

copyandpastes 2021. 1. 19. 08:17
반응형

Jenkins는 어떤 셸을 사용합니까?


shell명령을 호출 할 때 Jenkins에서 사용되는 셸은 무엇입니까 ? Linux 컴퓨터에서 Jenkins를 실행하고 있습니다.


"셸 실행"섹션의 도움말 / 물음표 아이콘에서 :

프로젝트 빌드를위한 쉘 스크립트 (기본값은 sh이지만 구성 가능)를 실행합니다.

Jenkins 관리-> 시스템 구성으로 이동하면 쉘 스크립트에서 사용할 쉘의 이름 또는 절대 경로를 설정하는 옵션 ( "쉘 실행 파일"이라고 함)을 찾을 수 있습니다.

이 옵션을 구성하지 않은 내 시스템에서는 bash를 사용합니다!


셸 스크립트 파일 에서처럼 스크립트의 첫 번째 줄에 셸을 선언하기 만하면됩니다.

#!/bin/bash

Jenkins 빌드에 다음 셸 명령을 추가하여 env를 인쇄 해 보았습니다.

env

출력은 tcsh내 인스턴스 대해 SHELL이로 설정되었음을 보여줍니다 .


에 대한 기본 봐서는 젠킨스 sh에서 PATH환경 변수, 그러나 결과 (예 /bin/sh) 다른 조개를 가리 수 있습니다. 예를 들어 Ubuntu 6.10 이상에서는 /bin/shDash에 대한 심볼릭 링크입니다.

따라서 "Jenkins에서 사용되는 쉘 ..."이라는 질문에 대해서는 상황에 따라 다릅니다. 불확실성을 피하기 위해 다음을 수행 할 수 있습니다. (Bash를 예로 들어)

  1. Jenkins 관리> 시스템 구성> 셸> 셸 실행 파일에서 셸 실행 파일을 명시 적으로 구성합니다 (예 : /bin/bash. (시스템 전체 구성)
  2. 통역사가 사용되어야 함을 지정하려면 shebang 라인을 사용하십시오 #!/usr/bin/env bash( 예 : 작업에 따라 다름).

Jenkins> Jenkins 관리> 시스템 구성> 셸 실행 파일을 사용하여 기본 셸을 설정할 수 있습니다 .

기본값과 다른 셸을 사용하는 작업의 경우 다음 과 같이 shebang으로 빌드 실행 단계를 시작합니다 .

#!/usr/bin/tcsh -e -x

command1
command2
   ...

예를 들어 /usr/bin/envPython을 사용 하는 데 사용할 수도 있습니다 .

#!/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

반응형