사용자로부터 비밀번호를 읽으려고 하는데 -s
자동 플래그를 사용했지만 read -s
스크립트에서는 작동하지 않지만 터미널에서 수동으로 실행하면 작동합니다.
오류 정보
project.sh: 3: read: Illegal option -s
you entered
암호
maddy@ElementalX:~/Desktop$ cat project.sh
#!/usr/bin/sh
read -s -p "Enter Password: " pswd
echo "you entered $pswd"
maddy@ElementalX:~/Desktop$
답변1
-s
내장 유틸리티 옵션은 read
표준이 아니며 에서는 사용할 수 없습니다 sh
. 마찬가지로 -p
사용자 정의 프롬프트를 제공하는 옵션도 보편적으로 사용할 수 없습니다 sh
.
대신 입력한 문자를 에코하지 않고 터미널에서 읽기를 지원하는 bash
스크립트 를 실행하세요 . 가장 쉬운 방법은 시스템의 실행 파일을 가리키도록 -line을 변경하는 것 입니다.read
-s
-p
#!
bash
쉘이 아닌 경우 bash
다음과 같은 것을 얻을 수 있습니다.
printf 'Enter password: ' >&2
stty -echo
read password
stty echo