리눅스에서 bash 스크립트의 GUI 메시지 상자를 표시하는 방법은 무엇입니까?
Ubuntu linux에서 몇 개의 bash 스크립트를 작성하고 있습니다.입력을 입력하거나 출력을 볼 수 있는 터미널 창 없이 GUI에서 실행할 수 있기를 원합니다.
지금까지 필요한 것은 sudo에 대한 암호뿐이며 gksudo는 그것을 잘 처리합니다.하지만 저는 아직 메시지 상자를 쉽게 보여줄 수 있는 방법을 찾지 못했습니다.사용 가능한 'gkmessage' 명령어가 있습니까?기본 Ubuntu 설치에 있는 것을 선호하지만 필요하다면 새 패키지를 설치해도 상관 없습니다.
많은 Linux 디스트리뷰터에서notify-send
명령은 오른쪽 상단 모서리에 손상되기 쉬운 좋은 알림 중 하나를 던질 것입니다.이와 같은 경우:
notify-send "My name is bash and I rock da house"
B.E.A.Utiful!
제니티는 당신이 원하는 것을 해줄 것이라고 믿습니다.명령줄에서 GTK 대화 상자를 표시하도록 특별히 설계되었으며 Ubuntu 패키지로 사용할 수 있습니다.
모두가 정열을 언급하고, 다른 사람들도 많은 것 같습니다.복잡하지만 흥미로운 목록은 http://alternativeto.net/software/zenity/ 에 있습니다.
진기함:
첫째, 텍스트 서식 마크업, 창 제목, 단추 레이블을 특징으로 하는 진성의 예입니다.
zenity \
--info \
--text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nGet your <b>coffee</b>." \
--title="Coffee time" \
--ok-label="Sip"
gx 메시지:
gxmessage "my text"
xmessage:
xmessage
매우 오래되어 안정적이며 X를 사용하는 모든 배포에서 사용할 수 있습니다(X와 함께 배포되므로).의미를 알 수 있을 정도로 오랫동안 Linux 또는 Unix를 사용해 온 사용자를 위해 X 리소스를 통해 사용자 정의할 수 있습니다..Xdefaults
누구라도?)
xmessage -buttons Ok:0,"Not sure":1,Cancel:2 -default Ok -nearmouse "Is xmessage enough for the job ?" -timeout 10
kdialog(KDE 도구):
kdialog --error "Some error occurred"
YAD(Yet Another Dialog):
Yad는 최신 Ubuntu 버전에 포함되어 있습니다.또한 PPA: YAD: Zenity On 스테로이드 [Display Graphical Dialogs From Shell Scripts] ~ Web Up8: Ubuntu / Linux 블로그가 있습니다.대화 상자의 크기를 자동으로 조정하지 않는 것 같습니다.
echo My text | yad \
--text-info \
--width=400 \
--height=200
더 큰 예
yad \
--title="Desktop entry editor" \
--text="Simple desktop entry editor" \
--form \
--field="Type:CB" \
--field="Name" \
--field="Generic name" \
--field="Comment" \
--field="Command:FL" \
--field="Icon" \
--field="In terminal:CHK" \
--field="Startup notify:CHK" "Application" "Name" "Generic name" "This is the comment" "/usr/bin/yad" "yad" FALSE TRUE \
--button="WebUpd8:2" \
--button="gtk-ok:0" \
--button="gtk-cancel:1"
Ubuntu 표준 리포지토리에 없는 다른 항목:
- 조개구이
- x대화 상자
- gtk 대화 상자
주제 외(단말기용):
whiptail --msgbox "my text" 10 20
dialog --msgbox "my text" 10 20
자유롭게 편집하세요.
당신이 찾고 있는 것이 젠티 애플리케이션인 것 같습니다.
zenity에서 입력을 가져오려면 변수를 지정하고 zenity --entry의 출력을 저장할 수 있습니다.다음과 같습니다.
my_variable=$(zenity --entry)
지금 my_variable의 값을 보면, zenity 팝업 입력 대화상자에 입력된 값이 됩니다.
사용자(또는 사용자)가 대화상자에 무엇을 입력해야 하는지에 대한 메시지를 표시하려면 원하는 레이블로 --text 스위치를 추가합니다.다음과 같습니다.
my_variable=$(zenity --entry --text="What's my variable:")
Zenity에는 특정 작업에 사용할 수 있는 여러 가지 다른 좋은 옵션이 있습니다. 따라서 zenity와 함께 확인하고 싶을 수도 있습니다. 도움말입니다.한 가지 예로 그래픽 달력에서 날짜를 선택할 수 있는 --calendar 옵션이 있습니다.
my_date=$(zenity --calendar)
그러면 사용자가 클릭한 내용에 따라 날짜 형식이 적절하게 지정됩니다.
echo ${my_date}
제공:
08/05/2009
슬라이더 선택기, 오류, 목록 등에 대한 옵션도 있습니다.
이게 도움이 되길 바랍니다.
xmessage 명령어를 찾았는데, 이 정도면 충분합니다.
alert
그리고.notify-send
같은 것 같습니다.사용합니다notify-send
초점을 훔치지 않기 때문에 비입력 메시지에 대해 그리고 나는 젠티 등이 이것을 하는 것을 막을 방법을 찾을 수 없습니다.
예.
# This will display message and then disappear after a delay:
notify-send "job complete"
# This will display message and stay on-screen until clicked:
notify-send -u critical "job complete"
다른 것이 없으면다음과 같이 xterm을 실행하고 에코할 수 있습니다.
xterm -e bash -c 'echo "this is the message";echo;echo -n "press enter to continue "; stty sane -echo;answer=$( while ! head -c 1;do true ;done);'
여기 당신이 원하는 것을 할 수 있는 작은 TCL 스크립트가 있습니다.Wish 인터프리터는 기본적으로 Ubuntu에 설치되어야 합니다.
#!/usr/bin/wish
pack [label .msg -text [lindex $argv 0]]
pack [entry .ent]
bind .ent <KeyPress-Return> { puts [.ent get]; destroy . }
focus .ent
다음과 같이 부릅니다.
myanswer=`gui-prompt "type your answer and press enter"`
▁is도 있습니다.dialog
은 KDE입니다.kdialog
.dialog
슬랙웨어에서 사용되므로 다른 배포판에서는 즉시 사용할 수 없을 수 있습니다.
우분투의 경고는 어떻습니까?작업이 완료되었음을 알리고 오류로 인해 작업이 완료된 경우 빨간색 십자 아이콘을 표시하는 데 사용할 수 있습니다.
ls -la; alert
진정성은 제가 생각하기에 당신이 찾고 있는 정확한 도구입니다.
또는
zenity --help
셸 스크립트를 실행하기 전에 셸 마크를 사용하여 GUI 대화 상자를 표시할 수 있습니다. 이 대화 상자를 통해 사용자는 환경에 배치할 데이터를 입력할 수 있습니다.
#!/bin/bash
echo "Hello ${name}"
exit 0
---
[name]
type="text"
label="Please enter your name"
required=true
실행 중인 스크립트:
shellmarks hello.sh
상자에 "Steve"를 입력하고 run을 누르면 출력이
Hello Steve
공개:저는 셸마크의 저자입니다.
Kdialog와 dialog 모두 좋지만, Zenity를 추천합니다.x메시지나 대화상자를 빠르고, 쉽고, 훨씬 더 잘 볼 수 있습니다.
저는 제가 대본 대화를 통해 보고 있는 것이 마음에 듭니다.모든 상자에 눈금이 표시되고 일부 상자도 표시됩니다.
- 팝업 GUI 상자, 텍스트 모드 폴백 있음
- 다양한 sudo 변형(gksudo, kde-sudo, ...)에 대한 지원
- 터미널 창에서 다시 시작할 수 있습니다.
실제로 그것은 kdialog, zenity, 대화상자, Whiptail 및 사용자 정의 폴백을 위한 포장지입니다.
단점은 CLI가 없는 대신 bash 스크립트의 소스가 되는 것입니다.
언급URL : https://stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux
'programing' 카테고리의 다른 글
AWS Lambda에서 MongoDB 연결 (0) | 2023.05.22 |
---|---|
젠킨스에서 작업을 복제하려면 어떻게 해야 합니까? (0) | 2023.05.22 |
matplotlib에서 (x, y) 좌표 리스트 표시 (0) | 2023.05.22 |
사용자 경고: lzma 모듈을 가져올 수 없습니다.설치된 Python이 불완전합니다. (0) | 2023.05.22 |
이클립스: 메이븐 검색 종속성이 작동하지 않습니다. (0) | 2023.05.22 |