다음 스크립트가 "예기치 않은 연산자" 메시지를 표시 sh
하고 bash
.
#!/bin/sh
if [ $UID -ne 0 ]
then
echo "You must be root."
exit 1
else
echo "Open sesame."
exit 0
fi
답변1
모든 쉘이 변수를 정의하는 것은 아닙니다 UID
. 이것은 bash 및 zsh 기능일 뿐입니다. 다른 셸에서는 UID
이 변수가 정의되지 않으므로 테스트 명령이 [ -ne 0 ]
구문 오류로 확장됩니다.
사용자 ID를 얻는 편리한 방법은 다음을 사용하는 것입니다.id
유용.
if [ "$(id -u)" -ne 0 ]; then …