내 기능 :
Function promptYesNo($prompt) {
& dialog --yesno $prompt 0 0
return 1-$LastExitCode
}
대화 상자는 내 경우에는 cygwin에서 가져온 프로그램으로 Text-UI 대화 상자를 만듭니다 (이와 같이 )
이 함수를 다음과 같이 호출하면 :
promptYesNo "Prompt"
모든 것이 예상대로 작동합니다. 하지만 함수의 결과를 다음과 같은 변수에 저장하려고하면 :
$var = promptYesNo "Prompt"
대화 상자에서 보이는 출력을 얻지 못합니다. 내 말은, 대화가 실행 중이고 내가하는 일에 반응하지만 나는 그것을 보지 않는다 (내 생각에는 출력이 어딘가로 리디렉션된다).
내가 뭘 잘못하고 어떻게 옳은 일을하나요?
이에 대한 가장 간단한 해결책은 함수의 출력을 리디렉션하지 않고 다른 방식으로 결과를 반환하는 것입니다. 작동해야하는 한 가지 방법은 다음과 같습니다.
Function promptYesNo($prompt, [string]$varname) {
& dialog --yesno $prompt 0 0
Set-Variable -Name "script:$varname" -Value (1-$LastExitCode)
}
promptYesNo "Some prompt" -varname "result"
echo $result
script:
변수 설정 범위는 발신자의 범위 대신 함수 영역의 변수를 설정한다.
물론 이렇게하면 promptYesNo를 호출하는 스크립트 나 함수가 출력을 리디렉션하지 않도록해야합니다. 따라서 궁극적으로 코드를 호출하는 모든 항목으로 계속됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다