비밀번호를 설정하기 위해 쉘스크립트에 다음과 같은 작은 코드 조각이 있습니다.
if [[ -z "${PASS+x}" ]]; then
read -p "enter pass or use default [test1234]" PASS
if [[ -z "$PASS" ]]; then
PASS="test1234"
fi
fi
if [ $EUID != 0 ]; then
sudo "$0" "$@"
exit $?
fi
스크립트를 실행하면 읽기 명령이 두 번 실행됩니다. 이런 일은 일어나서는 안 됩니다. 누구든지 오류를 찾는 데 도움을 줄 수 있습니까?
전체 스크립트:github (수정됨)
답변1
연결한 전체 스크립트에는 다음이 포함됩니다.
if [ $EUID != 0 ]; then
sudo "$0" "$@"
exit $?
fi
read
이는 모든 옵션 처리 및 질문에 표시된 호출 후에 수행됩니다. 내 생각에는 재시작 스크립트를 사용하여 이 코드 블록을 누르고 명령을 두 번 sudo
누르는 것입니다 read
. 한 번은 재시작 스크립트를 사용하기 전과 sudo
한 번은 후에입니다.