![컴파일 오류 문자 누락 - Unix 쉘 스크립트](https://linux55.com/image/105250/%EC%BB%B4%ED%8C%8C%EC%9D%BC%20%EC%98%A4%EB%A5%98%20%EB%AC%B8%EC%9E%90%20%EB%88%84%EB%9D%BD%20-%20Unix%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
UBM unix 디렉토리에서 3개의 파일을 찾아야 합니다. 하나의 (CMUSER) 파일을 사용할 수 있으면 unix 스크립트를 종료해야 합니다.
다음은 내 유닉스 쉘 스크립트 논리입니다. 왜 컴파일 오류가 발생합니까?
cd /$UBCS
if [ -f /$UBM/CSUSER.LOCKED -o -f /$UBM/CSUSER.START]
-o f /$UBM/CSUSER.UPDATE ];
then
exit;
fi
내 컴파일 오류는 다음과 같습니다
Enter script to execute: atm-autopbf
/rd23/gilbat/R2016/ubcs/atm-autopbf[38]: test: 0403-021 **A ] character is missing**
.
/rd23/gilbat/R2016/ubcs/atm-autopbf**[39]: -o: **not found.****
Not running C/S (SHELMATE MAXSESSIONS=0). Aborting ...
Press <ENTER> to continue:
답변1
당신의 스크립트,
cd /$UBCS
if [ -f /$UBM/CSUSER.LOCKED -o -f /$UBM/CSUSER.START]
-o f /$UBM/CSUSER.UPDATE ];
then
exit;
fi
문법적 오류가 있습니다. if [ ... ]
문이 불균형합니다. 또한 /$UBM/CSUSER.START
사이와 아래에 공백이 필요합니다 ]
.
#!/bin/sh
cd "/$UBCS" || exit 1
if [ -f "/$UBM/CSUSER.LOCKED" ] ||
[ -f "/$UBM/CSUSER.START" ] ||
[ -f "/$UBM/CSUSER.UPDATE" ]
then
exit
fi
ShellCheck에 스크립트를 붙여넣어 보십시오.https://www.shellcheck.net/
또한, 당신은 얻지 못합니다편집쉘 스크립트 오류(컴파일되지 않았기 때문에) 그들은분석하다실수.