bash 스크립트 - GUI를 통해 입력 요청

bash 스크립트 - GUI를 통해 입력 요청

현재 bash에서 nemo 액션 스크립트를 작성 중이며 사용자로부터 입력을 받을 수 있는 방법이 필요합니다.

어떻게? 액션 스크립트를 실행할 때 터미널이 표시되지 않습니다.

사용자 입력을 요청하기 위해 GUI에서 쿼리 창을 팝업하는 방법이 있습니까?

답변1

Zenity는 훌륭한 도구입니다.

user_input=$(zenity --entry)

사용자가 GUI 창에 입력하는 모든 것은 사용자가 취소 키를 누르지 않는 한 변수에 할당되며 user_input, 이 경우 종료 코드는 0이 아닙니다.

user_input=$(zenity --entry)
if [ $? = 0 ]; then 
    echo "User has pressed OK. The input was:"
    echo "$user_input"
else
    echo "User has pressed cancel"
fi

Gxmessage는 매우 유사한 구문을 사용하는 대안입니다.

user_input=$(gxmessage --entry "Enter your input")

자세한 내용은 다음을 참조하세요.man zenity그리고man gxmessage.

답변2

  • 쉘에 머물고 싶다면 이것을 사용하십시오 dialog(거의 모든 배포판에는 기본적으로 설치되어 있습니다).
    사용하기 전에 맨페이지를 읽어서 원하는 작업을 정확하게 수행하도록 구성할 수 있습니다. 작은 예:
dialog --inputbox "Please input something" 0 0 2> /tmp/file_that_will_contain_your_input
  • X11 창을 표시하려면 xdialog를 확인하세요. 그러나 나는 셸에 머무르는 것을 권장합니다.
    X11 부분을 사용하고 일부는 콘솔을 사용하는 스크립트를 작성하면 문제가 발생하지만 아무런 이점도 얻지 못합니다. 호환성상의 이유로
    의 구문은 xdialog의 구문과 거의 동일합니다. dialog따라서 위의 예 앞에 놓으면 x정확히 동일한 작업을 수행하지만 X11 창을 사용합니다. 자세한 내용은 맨페이지를 다시 확인하세요.

관련 정보