我希望有一种简单的方法来输入员工登录后可以看到的消息。它不必是特定日期的,虽然那样会很好,但我找不到一种方法来使用对话框让我在进入文件之前输入多行文本。
没什么帮助?
#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15
$DIALOG --title "Bulletin Board Entry" --clear \
--inputbox "Enter Today's Very Important\n
employee information below:" 16 51 2> $tempfile
retval=$?
case $retval in
0)
echo "Input string is `cat $tempfile`";;
1)
echo "Cancel pressed.";;
255)
if test -s $tempfile ; then
cat $tempfile
else
echo "ESC pressed."
fi
;;
esac
答案1
使用--editbox emptyfile
而不是--inputbox
。不幸的是,这不允许您传递/dev/null
而不是emptyfile
,因此您实际上必须创建一个空的(临时)文件。或者包含消息模板的文件。
答案2
作为 的替代方案dialog
,您可以简单地使用临时文件启动编辑器。这样,每个用户甚至可以使用他或她喜欢的$EDITOR
,而不是功能有限的dialog
。许多应用程序在需要用户输入时都会做这种事情。我特别想到了版本控制系统。
答案3
为员工登录后显示的信息提供简单的输入方式
为了显示文件,如建议的那样,有--textbox file height width
而不是--editbox filepath height width
。它们也是--tailbox file height width
和--tailboxbg file height width
。
为了显示文本(不在文件中,而是来自变量或直接提供的引用),它们是--infobox text height width
或--msgbox text height width
或--yesno text height width
,但不是--inputbox text height width [init]
我在评论中看到 OP 在 RHEL5 下有些小部件不见了但正如您所见,它们是替代品。
允许我在文件之前输入多行文本。
我不太清楚:显示的文本或文件不受行数限制。如果目的是让用户填满板子,我会按照$EDITOR
建议使用,因为它对用户来说更方便、更友好。