我发现了Dialogs,所以我今天要更新菜单。到目前为止,非常好。
我来到了需要收集用户输入的地方。
我有
dialog --title " INPUT FILE NAME: " --inputbox "$(ls)" 30 40 2> answer
这会将用户输入发送到名为" answer"
的文件我试过了
dialog --title " INPUT FILE NAME: " --inputbox "$(ls)" 30 40 2> $answer
但似乎什么也没做。
我试过
answer=$(dialog --title " INPUT FILE NAME: " --inputbox "$(ls)" 30 40 2)
但有一些错误。
答案 0 :(得分:1)
manual page(对话框)讲述了这个故事:
某些小部件(例如核对清单)会将文本写入对话框的输出。 通常这是标准错误,但有更改选项 这:“
--output-fd
”,“--stderr
”和“--stdout
”。如果没有写入文字 按下取消按钮(或ESC); 对话框会立即退出。
原因对话框默认使用标准错误输出的是它使用curses / ncurses库,它通常将其输出(用于屏幕更新)打印到标准输出。要更改对话框的行为(并写入标准输出),请使用“ --stdout
”选项。
有趣的是(虽然它可能看起来是一个明显的问题需要解决,因为它使脚本复杂化),Xdialog程序首先实现了这个选项;添加到对话框似乎是 Good Thing (参见changelog)。
答案 1 :(得分:0)
完成
dialog --title " INPUT FILE NAME: " --inputbox "$(ls )" 30 40 2>answer
ans=$(cat answer)
rm answer