zenity 대신 Whiptail을 사용하도록 스크립트 변경

zenity 대신 Whiptail을 사용하도록 스크립트 변경

Whiptail을 사용하기 위해 일부 zenity 기반 스크립트를 변환하는 데 문제가 있습니다.

작업 스크립트는 다음과 같습니다.

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(zenity \
--entry \
--title="Username" \
--text="Enter your Username")

휩테일을 사용하도록 변환하려고 하는데 계속 빈 화면이 나타납니다.

이것이 내가 지금까지 가지고 있는 것입니다:

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(whiptail \
--inputbox "Username" 10 30)

내가 뭘 잘못했나요?

답변1

입력 상자가 표시되지 않는 이유는 whiptail캡처하는 표준 출력에 디스플레이가 기록되기 때문입니다. 입력 결과는 stderr에 기록되지만 캡처하지는 않습니다. 이것이 작동하려면 stderr대신 캡처할 명령 대체가 필요합니다 stdout. 리디렉션을 통해 이 작업을 수행할 수 있습니다.

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(whiptail \
--inputbox "Username" 10 30 3>&1 1>&2 2>&3)

관련 정보