명령 행에서 메시지 상자를 작성하는 방법은 무엇입니까?


65

GUI 메시지 상자 또는 터미널 내부에 표시되는 메시지 상자

예 / 아니오 또는 라디오 버튼과 같이 사용자로부터 간단한 입력을 다시받을 수 있다는 것도 흥미로울 것입니다.


8
"메시지 상자"는 무엇을 의미합니까? 그래픽 경고 상자, 팝업 메시지 상자? 다른 것?
polym

답변:


110

표준 "메시지 주위의 상자"의 경우 다음을 사용하십시오 boxes.

echo 'This is a test' | boxes

boxes다음과 같이 보일 것입니다 (첫 번째 것, 두 번째 것 같은 것입니다 cowsay) :

별표 상자와 텍스트 기호를 들고있는 ASCII 예술 개 스크린 샷


경고 상자를 의미하는 경우 다음을 사용하십시오 notify-send.

notify-send 'title' 'message'

notify-send 다음과 같이 보입니다 :

"Hello Ashframe ..."이라는 팝업 메시지


zenity팝업 창 에도 사용할 수 있습니다 .

zenity --error --text="An error occurred\!" --title="Warning\!"

Zenity는보다 그래픽 적이며 다음을 사용하여 창을 질문으로 표시하는 등 더 많은 옵션을 제공합니다.

zenity --question --text="Do you wish to continue/?"

또는 다음을 사용하여 진행률 표시 줄

find /usr | zenity --progress --pulsate --auto-close --auto-kill --text="Working..."

zenity 다음과 같이 보입니다 :

버튼이있는 오류, 질문, 정보 및 경고 대화 상자


또는 dialog명령 행 전용 메시지 상자에을 사용하십시오.

dialog --checklist "Choose OS:" 15 40 5 \
1 Linux off \
2 Solaris on \
3 'HP UX' off \
4 AIX off

dialog 다음과 같이 보입니다 :

4 가지 옵션이있는 대화 상자 TUI


다른 옵션은 whiptail다음과 같습니다.

whiptail --title "Example Dialog" --msgbox "This is an example of a message box. You must hit OK to continue." 8 78

whiptail 다음과 같이 보입니다 :

두 개의 텍스트 버튼이있는 채찍 꼬리 팝업 상자


그리고 정말로 미쳤다면 다음을 사용하십시오 toilet.

toilet -F border -F gay "CRAZY"

toilet 다음과 같이 보입니다 :

"CRAZY"를 읽는 화려한 텍스트 상자


3
정말 완전한 답변, 유용합니다! 감사합니다!

@polym의 훌륭한 글쓰기 – zenity업데이트 및 업그레이드 부서에서 한 달에 한 번 내 신경을 쓰는 데 사용할 것입니다.
Frank Nocke

27

xmessage

이것은 GUI 알림의 할아버지입니다.

xmessage -center "Hello, World!"

순수한 복고풍의 선함.

또한 X11 시스템에서 광범위하게 사용할 수 있어야합니다.

SO 스레드 : 리눅스의 bash 스크립트에서 GUI 메시지 상자를 표시하는 방법은 무엇입니까? | 스택 오버플로

우분투에서 테스트 18.04.


Openbox 설치시 즉시 사용 가능합니다. 감사!
aexl

xmessage기본적으로 Ubuntu Server에도 설치됩니다. 따라서 ssh -Y <host> x 연결을 전달하는 동안 컴퓨터에 로그인 한 다음 some-command; xmessage "some-command is done"장기 실행 명령이 완료되면 바탕 화면에 알림을 표시하도록 실행할 수 있습니다.
Stephen Ostermiller

@StephenOstermiller 네, 좋은 팁입니다!
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
멋진 명령. 몇 초 후에 메시지를 자동 지우려면 xmessage -timeout 10 "Goodbye in 10s!".
AlainD

8

그리고 @polym이 최고의 답변을 완전히 얻었 기 때문에 고전적인 메시지를 놓쳤습니다.

write <username> [<terminal>]-다른 사용자에게 메시지를 보냅니다. 대화식으로 또는 파이프의 일부로echo "message" | write username

쓰다


wall모든 사용자에게 메시지를 보내기 위해 쓰고 보완

벽


1

텍스트를 Python 래퍼로 파이프하려는 경우 다음을 사용할 수 있습니다 terminaltables.

pip3 install colorclass
pip3 install terminaltables

그런 다음 GitHub Repo 에서 예제 중 하나를 사용하여 Python 래퍼를 작성할 수 있습니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.