【发布时间】:2015-05-27 09:34:38
【问题描述】:
我正在开发一个简单的 bash 脚本菜单,我已关注 this guide 开始。
它工作正常,但我不太喜欢如何将 stderr 重定向到文件然后在主循环中使用。
在我的脚本中,我有一些绘制不同事物的函数。我正在尝试修改它们以使其工作而无需写入文件。绘制菜单的功能之一是(简化):
function render_menu()
{
dialog --clear --backtitle "$backtitle" --title "Some Title" --menu "My fancy menu" 50 15 4 "one" "option 1" "two" "option 2"
echo $?
}
它是从主循环中调用的:
while true; do
selection="$(render_menu)"
case $selection in
Quit) break;;
Back) #some logic;;
*) #some logic;;
esac
done
但它不起作用,当我运行脚本时我看不到菜单。我假设是因为dialog 的输出已被重定向?
我希望它工作的方式是显示对话框,并将其输出存储在变量selection 中。这可能不需要外部文件吗?如果不是,为什么会这样?
【问题讨论】:
-
分配给变量的命令的所有输出都放在该变量中。
Selection将包含返回码和对话框的全部内容。