사용자 입력을 기반으로 변수를 설정하려고 합니다. 사용자에게 "버튼 반환: 예" 또는 "버튼 반환: 아니요"로 응답하도록 구성한 것을 알고 있습니다.
버튼이 "예"를 반환하면 변수를 "True"로 설정하고 싶습니다. 버튼이 "No"를 반환하면 "False"를 반환합니다.
이것이 내가 지금까지 가지고 있는 것입니다:
response="button returned:yes"
var=`/usr/bin/osascript -e 'display dialog "Is a reboot required?" buttons {No,Yes}'`
/bin/test "$response" = "$var" && reboot="True" || reboot="False"
내가 뭘 잘못했나요? 사용자 입력에 관계없이 $reboot 변수는 항상 false로 설정됩니다. 이것은 macOS 시스템에서 실행되도록 설계된 bash 스크립트입니다.
답변1
스크립트 사본 끝에 다음 줄을 추가하세요.
echo "r: '$response'; v: '$var'; b: '$reboot'"
다음과 같은 출력을 제공합니다.
r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'
osascript
출력에 공백이 추가된 것으로 보이며 "string"
불평등 으로 인해 "string "
테스트가 예상대로 실행되지 않습니다.