ShellScript:对话框输入框

ShellScript:对话框输入框

您可以使用某种方式在 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.$$`

您可能需要考虑使用类似zenitykdialog代替dialog,以避免额外的xterm

bash第二行最好写成x=$(< /tmp/input.$$)。)

相关内容