쉘 스크립트의 백분율 기호 및 환경 변수

쉘 스크립트의 백분율 기호 및 환경 변수

문제를 해결하는 동안 우리 애플리케이션에서 사용하는 셸 스크립트 중 하나에서 아래에 제공된 이러한 항목을 발견했습니다. 이 글은 더 이상 회사에 다니지 않는 사람이 쓴 글인데, 스크립트가 무슨 일을 하는지 차근차근 알아내려고 노력 중입니다. 환경 변수 $PAT_HOME이 있습니다. 양쪽 끝에서 사용 하면 %$PAT_HOME과 같은 환경 변수를 호출하는 것입니까? 이 경우 % 기호를 사용하는 것은 환경 변수를 사용할 때와 어떻게 다릅니까?

echo "cd " %PAT_HOME%
cd  %PAT_HOME%
# P:
echo "pan.sh -file $kmrfile $logfile_location $csvfile"

cd  $PAT_HOME
sh pan.sh -file $kmrfile $logfile_location $csvfile

답변1

Unix 쉘 스크립트와 DOS 배치 스크립트를 혼합한 것처럼 보입니다. :)

DOS에서는 환경 변수를 묶어서 액세스합니다 %. 와 비슷 %PATH%하지만 Linux에서는 이 작업을 수행할 수 없습니다.

한번 시도해 보세요

$ echo %PATH%
%PATH%

환경 변수는 확장되지 않습니다. 그런데 이 스크립트가 정말 작동할까요? 왜냐하면 스크립트의 후반부에서는 변수가 를 통해 액세스되지만 $상위 부분은 를 통해 액세스되기 때문입니다 %. 대부분의 경우 cd %PAT_HOME%, 이름이 지정된 파일이 없으면 해당 섹션에서 오류가 발생합니다 %PAT_HOME%!

답변2

Linux 스크립트 셸은 Windows CMD 스크립트와 100% 호환되지 않으며 조정이 필요합니다.

이 문서를 봐

1 -> 배쉬 스크립트

2 -> 배치 스크립트

하지만 원한다면 Windows CMD 스크립트를 만들고 "wine cmd"를 사용하여 테스트할 수 있으며 와인과 Windows에서도 100% 작동합니다.

환경 변수가 다르므로 일부 내용을 다르게 작성해야 합니다.

관련 정보