새 작업공간의 루트에서 명령을 실행합니다.

새 작업공간의 루트에서 명령을 실행합니다.

Python 파일 세트를 실행하기 위해 특정 디렉토리로 이동하는 쉘 스크립트가 있습니다. 이제 소스 제어(스크립트 및 Python 파일)에 커밋했으므로 Jenkins 작업 공간에 복제하고 거기에서 파일을 실행하려고 합니다. 스크립트는 현재 Jenkins 작업 공간이 아닌 로컬 저장소에 작성 중이므로 저장소 복제가 중복됩니다. Jenkins 작업 공간에 존재하는 파일을 인식하고 대신 거기에서 실행하도록 cd 명령을 작성하려면 어떻게 해야 합니까? 동일한 컴퓨터에 존재합니까?

답변1

test내가 올바르게 이해했다면 디렉토리가 스크립트와 동일한 위치에 있기를 원할 것입니다 .

다음과 같이 스크립트 위치를 얻을 수 있습니다(스크립트를 실행할 때 현재 디렉터리에 관계 없음).

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

그러면 당신은 다음과 같은 것을 할 수 있습니다

cd "$MYPATH/test"

설명하다:

$0스크립트의 이름입니다(경로 포함).

readlink -e /foo/bar/foo/bar의 절대 위치를 제공합니다(심볼 링크도 해결함).

dirname경로만 남기고 파일 부분을 다듬습니다.

관련 정보