쉘 스크립트의 변수에서 특정 텍스트 추출

쉘 스크립트의 변수에서 특정 텍스트 추출

변수가 2개 있어요

VAL1="C70AN"
VAL2="MBA30"

내 시스템에는 하나의 디렉토리가 있습니다/opt/web/C70/MBA/

변수를 사용하여 이 디렉터리로 어떻게 이동할 수 있나요?

예를 들어cd /opt/web/$VAL1/$VAL2

쉘 스크립트의 변수에서 특정 텍스트를 어떻게 추출합니까?

답변1

@Anthon의 답변은 완벽하게 정확하지만 IMO를 너무 많이 입력한다는 의미입니다. 래퍼로 "mycd"라는 이름의 쉘(bash) 함수를 정의하는 것이 좋습니다.

function mycd {
  cd /opt/web/${VAL1:0:3}/${VAL2:0:3}
}

이제 변수 $VAR1 및 $VAR1의 현재 값에 관계없이 이 함수를 호출하면 디렉터리가 예상 위치로 변경됩니다.

실행 중인 bash 터미널에서 다음 예를 시도해 보세요. 각 입력 줄 창 끝에서 Enter 키를 누르세요.

user% cd; pwd
/home/user
user% function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} }
user% export VAL1="C70AN"; export VAL2="MBA30"
user% mycd
user% pwd
/opt/web/C70/MBA
user%

물론 이 예가 작동하려면 "/opt/web/C70/MBA" 디렉토리 트리가 있어야 합니다. 그렇지 않은 경우 다음과 같은 오류 메시지가 표시됩니다.

bash: cd: /opt/web/C70/MBA: file or directory not found

이 결과는 (아직) 존재하지 않는 계산된 디렉터리로 변경하려고 시도할 때 "mycd" 함수가 올바르게 작동했음을 증명하는 것입니다.

HTH도요

관련 정보