您可以使用某种方式在 Linux 中使用 shell 与用户交互dialog
。
我的问题是dialog --inputbox
,您让用户在哪里输入字符串作为问题的答案,然后您可以将结果重定向到/tmp/input.$$
,您可以将其保存如下:
dialog --inputbox "Enter you first name:"10 40 2>/tmp/input.$$
x=`cat /tmp/input.$$`
到目前为止,这很棒!但是如果我编写一个脚本,我必须分配“对话框....”,xterm
当用户单击脚本文件时,它将打开。如果我确实分配了,主要问题是我现在在代码
中找不到任何东西:/tmp/input.$$
xterm -e dialog --inputbox "Enter your first name" 10 40 2>/tmp/input.$$
x=`cat /tmp/input.$$`
那么我如何将用户输入的值保存到变量中以供以后使用?
有什么想法吗?即使使用不同的方法!
提前致谢
答案1
您需要使用引号来使重定向在正确的位置发生;正如所写,本身的输出xterm
(可能为空)被重定向。您还需要指定一个 shell,因为xterm -e
否则将exec
直接执行命令;重定向需要 shell。
xterm -e sh -c 'dialog --inputbox "Enter your first name" 10 40 2>/tmp/input.'$$
x=`cat /tmp/input.$$`
您可能需要考虑使用类似zenity
或kdialog
代替dialog
,以避免额外的xterm
。
(bash
第二行最好写成x=$(< /tmp/input.$$)
。)