ภาพหน้าจอในคำถามดูเหมือนว่าแส้ ( กล่องโต้ตอบเลียนแบบโปรแกรมที่ลดการทำงานโดยใช้ newt แทนที่จะเป็นncurses ) วิธีที่ชื่อและปุ่มแสดงผลถูกสร้างขึ้นในแต่ละโปรแกรมทำให้ดูแตกต่างกัน
นี่คือสคริปต์ที่ทำซ้ำภาพหน้าจอต้นฉบับสำหรับ whiptail หรือ dialog:
#!/bin/sh
: ${DIALOG:=dialog}
case "$DIALOG" in
*dialog*)
OPTS="$OPTS --cr-wrap"
high=10
;;
*whiptail*)
high=12
;;
esac
rows=$(stty size | cut -d' ' -f1)
[ -z "$rows" ] && rows=$high
[ $rows -gt $high ] && rows=$high
cols=$(stty size | cut -d' ' -f2)
$DIALOG --backtitle "Package configuration" \
--title "Configuring sun-java6-jre" \
$OPTS \
--yesno '\nIn order to install this package, you must accept the license terms, the "Operating System Distributor License for Java" (DLJ), v1.1. Not accepting will cancel the installation.\n\nDo you accept the DLJ license terms?' $rows $((cols - 5))
และสำหรับการเปรียบเทียบภาพหน้าจอพร้อมแส้:
และด้วยการโต้ตอบ:
นอกเหนือจากลักษณะที่ปรากฏที่แตกต่างกันของชื่อเรื่องและปุ่มโต้ตอบจะใช้สีที่แตกต่างกันตามค่าเริ่มต้น (แม้ว่าจะกำหนดค่าได้ - ดูภาพหน้าจอ ) และใช้บรรทัดน้อยลงบนหน้าจอ
dialog (และ whiptail) ใช้ไลบรารีสำหรับจัดการการแสดงบรรทัดสีและอื่น ๆ แต่คุณอาจเห็น newt ที่ใช้ในโปรแกรม Anaconda Red Hat เป็นไลบรารีแบบแบ่งใช้ที่เรียกว่าจากpython (มีลักษณะเดียวกัน) ในบรรทัดเดียวกันโปรแกรมกำหนดค่าเคอร์เนลเริ่มต้นเป็นสำเนาของกล่องโต้ตอบ (ตัดลง) จากนั้นพัฒนาเป็นคุณลักษณะโดยใช้ไลบรารีที่แชร์ (โดยไม่ต้องใช้lxdialog
โปรแกรมดั้งเดิม) เหมือนกับวิธีที่ newt ใช้จากงูใหญ่
จาก bash - คุณสามารถใช้ไดอะล็อกหรือแส้สำหรับคุณสมบัติที่ใช้บ่อยที่สุด มีคนเขียนเสื้อคลุมสำหรับผู้ที่ (เป็นภาษา Perl)เพื่อให้สคริปต์ใช้งานได้ง่ายขึ้นไม่ว่าจะเป็นคนอื่นหรือสองสามคน แต่คุณควรใช้บทสนทนาโดยตรงเนื่องจากโมดูล perl เป็นส่วนที่ใช้กันทั่วไป
แหล่งไดอะล็อกประกอบด้วยตัวอย่างของวิดเจ็ตทั้งหมดพร้อมกับตัวเลือกบรรทัดคำสั่งส่วนใหญ่:
cdialog (ComeOn Dialog!) version 1.3-20160424
Copyright 2000-2015,2016 Thomas E. Dickey
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* Display dialog boxes from shell scripts *
Usage: cdialog <options> { --and-widget <options> }
where options are "common" options, followed by "box" options
Special options:
[--create-rc "file"]
Common options:
[--ascii-lines] [--aspect <ratio>] [--backtitle <backtitle>] [--beep]
[--beep-after] [--begin <y> <x>] [--cancel-label <str>] [--clear]
[--colors] [--column-separator <str>] [--cr-wrap] [--date-format <str>]
[--default-button <str>] [--default-item <str>] [--defaultno]
[--exit-label <str>] [--extra-button] [--extra-label <str>]
[--help-button] [--help-label <str>] [--help-status] [--help-tags]
[--hfile <str>] [--hline <str>] [--ignore] [--input-fd <fd>]
[--insecure] [--item-help] [--keep-tite] [--keep-window] [--last-key]
[--max-input <n>] [--no-cancel] [--no-collapse] [--no-cr-wrap]
[--no-items] [--no-kill] [--no-label <str>] [--no-lines] [--no-mouse]
[--no-nl-expand] [--no-ok] [--no-shadow] [--no-tags] [--nook]
[--ok-label <str>] [--output-fd <fd>] [--output-separator <str>]
[--print-maxsize] [--print-size] [--print-version] [--quoted]
[--scrollbar] [--separate-output] [--separate-widget <str>] [--shadow]
[--single-quoted] [--size-err] [--sleep <secs>] [--stderr] [--stdout]
[--tab-correct] [--tab-len <n>] [--time-format <str>] [--timeout <secs>]
[--title <title>] [--trace <file>] [--trim] [--version] [--visit-items]
[--week-start <str>] [--yes-label <str>]
Box options:
--buildlist <text> <height> <width> <list-height> <tag1> <item1> <status1>...
--calendar <text> <height> <width> <day> <month> <year>
--checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--dselect <directory> <height> <width>
--editbox <file> <height> <width>
--form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--fselect <filepath> <height> <width>
--gauge <text> <height> <width> [<percent>]
--infobox <text> <height> <width>
--inputbox <text> <height> <width> [<init>]
--inputmenu <text> <height> <width> <menu height> <tag1> <item1>...
--menu <text> <height> <width> <menu height> <tag1> <item1>...
--mixedform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>...
--mixedgauge <text> <height> <width> <percent> <tag1> <item1>...
--msgbox <text> <height> <width>
--passwordbox <text> <height> <width> [<init>]
--passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--pause <text> <height> <width> <seconds>
--prgbox <text> <command> <height> <width>
--programbox <text> <height> <width>
--progressbox <text> <height> <width>
--radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--rangebox <text> <height> <width> <min-value> <max-value> <default-value>
--tailbox <file> <height> <width>
--tailboxbg <file> <height> <width>
--textbox <file> <height> <width>
--timebox <text> <height> <width> <hour> <minute> <second>
--treeview <text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>...
--yesno <text> <height> <width>
Auto-size with height and width = 0. Maximize with height and width = -1.
Global-auto-size if also menu_height/list_height = 0.
อ่านเพิ่มเติม:
dialog
ว่าสิ่งใดที่ใช้งานได้