728x90
반응형
개요
쉘 스크립트를 실행했을 때 다음과 같은 오류가 발생하였습니다.
pi@raspberrypi:~ $ sudo /opt/hbesthee/bin/setup-rwap.sh
20220719T20:01:36 MAC_ADDR=e4:5f:01:89:08:30
/opt/hbesthee/bin/setup-rwap.sh: 20: /opt/hbesthee/bin/setup-rwap.sh: Bad substitution
해결방법
오류가 발생한 코드는 다음과 같습니다.
#!/bin/bash
SSID_SURFIX=${MAC_ADDR:(-5)}
SSID_SURFIX=${SSID_SURFIX/:/}
일반 쉘(sh)에서는 지원하지 않는 "bash" 쉘 방식으로 문자열 잘라내기를 하고 있는 코드입니다.
"sudo" 명령로 실행하면, "#!/bin/bash"로 명시한 것과 관계없이 "sh"로 실행이 되는지 위와 같은 오류가 발생합니다.
해결방법은 단순하게 스크립트 실행할 때, 스크립트 파일 앞에 "bash" 쉘을 추가하여 명시적으로 "bash" 스크립트라고 지정해 주면 됩니다.
pi@raspberrypi:~ $ sudo bash /opt/hbesthee/bin/setup-rwap.sh
참고자료
- "[colab] bash: Bad Substitution":https://realist.tistory.com/10
'Linux,Unix,BSD' 카테고리의 다른 글
[Linux] ubuntu 환경에서 7zip 사용하기 (0) | 2022.12.01 |
---|---|
[linux] 일반 계정으로 80 포트로 웹 서비스하는 방법들 (0) | 2022.06.24 |
[shell] 문자열 잘라내기(substring) (0) | 2022.06.13 |
맥주소(Media Access Control ; MAC)를 얻는 방법 (0) | 2022.06.12 |
[shell] 명령어 유무 확인하기(command, which) (0) | 2022.06.09 |