如何将程序的输出重新路由到dialog
窗口而不是stdout
或stderr
使用 bash?
我不想通过 using 将该输出捕获到变量中,variable=$(appname)
然后通过 using 显示它dialog --msgbox
。我想要运行时重新路由之类的东西,以便程序的输出在dialog
生成时显示在该窗口中。不是在它完成之后。
那可能吗?
谢谢!
有没有办法让用户从对话框的菜单(--menu
)选择功能中选择一个分区?如果是这样,你怎么做?
当然,这不起作用:
dialog --menu "Select a partition" 0 0 0 $(fdisk -l)
我正在尝试dialog
使用 DIALOGRC 格式化我的盒子;我的大部分工作正常,但是对话框窗口的边框似乎存在问题,其中底部和右侧边框不尊重border_color
我的 DIALOGRC 文件中的设置。
我已确保该DIALOGRC
变量可用并指向适当的文件,并已通过更改指定文件中的其他颜色来验证它是否处于活动状态。但是,无论我做什么,我似乎都无法获得该程序的底部/右侧边框。
这是我的 DIALOGRC 文件的摘录:
use_shadow = OFF
# tried use_shadow = ON, no difference
use_colors = ON
screen_color = (WHITE,BLACK,OFF)
shadow_color = (BLACK,BLACK,OFF)
dialog_color = (BLUE,BLACK,ON)
title_color = (RED,BLACK,ON)
border_color = (RED,BLACK,OFF)
button_active_color = (RED,RED,ON)
button_inactive_color = (RED,BLACK,OFF)
button_key_active_color = (WHITE,RED,ON)
button_key_inactive_color = (RED,BLACK,ON)
button_label_active_color = button_active_color
button_label_inactive_color = button_inactive_color
(为简洁起见,省略了各种特定选项——但没有一个将白色指定为背景色,所以......?)
使用此文件,当我运行以下命令时:
dialog --title " Test " --yesno "\n Hello, this is my test dialog.\n\n As you can see, I have my border set to (RED,BLACK,OFF).\n Yet for some reason, the bottom and right borders are stuck\n on white-on-black?" 20 80
它产生了这个粗制滥造的窗口:
我尝试过更改use_shadow
选项,并且尝试过使用 shiggles 的--shadow
and--no-shadow
参数,但都没有(也没有)改变输出。我没有在谷歌上搜索到这个,部分原因是命令“对话”是非常通用的,并且为我提供了各种不相关内容的各种答案。
根据@K7AAY,这发生在 Ubuntu 18.04.2 上,对话版本为 1.3-20171209;我还在 Ubuntu 16.04.4 LTS 上使用对话框版本 1.3-20160209 复制了它,值得注意的是,当我在 Debian 10u1 系统(对话框版本 1.3-20190211)上安装对话框时。Debian 上的对话框(如果我理解正确的话是主要维护软件包的地方?)没有任何突出的错误报告与颜色或边框有关,更不用说边框颜色了。
我想把重复的行改成小函数,去掉不必要的代码。它可以是dialog
具有相同参数但--msgbox
总是不同的命令的功能。如何以正确的方式组合字符串并执行函数?
这么久它看起来像这样:
function DIALOG_OK() {
local function_name="${FUNCNAME[1]}"
local msg="${1}"
dialog --title "Fist boot detected !" --backtitle "HeadlineHere" ${msg}
}
执行:
DIALOG_OK --msgbox "\nFist boot configuration wizard detected.\nPlease choose OK to continue.\n" 8 40
输出:
Error: Expected at least 3 tokens for --msgbox, have 0.
这新出现在 Ubuntu 18.04 中,在以前的版本中没有出现。
首先,当我们从浏览器(firefox 和 chromium)保存 pdf 时,会弹出一个对话框,要求我们输入文件名和/或选择一个位置。
其次,在以前的 Ubuntu 版本中,此对话框可以拖动到屏幕上的任何位置,在 18.04 中不会发生这种情况,更糟糕的是,弹出对话框会冻结整个浏览器,因此无法向下滚动背景页面。
这变得特别烦人,因为在保存文件时,我通常会给出与文章标题相似的文件名,但有了这个新功能,对话框会阻止标题并迫使我做额外的工作。
有解决方法吗?这可以在即将到来的更新中更改吗?
我正在编写一个 bash 脚本,在脚本开始之前提示输入几个用户条目。我正在寻找使用对话框让用户验证信息的最佳方式。我正在尝试修改以下示例:
#!/bin/bash
# dynbox.sh - Yes/No box demo
dialog --title "Delete file" \
--backtitle "Linux Shell Script Tutorial Example" \
--yesno "Are you sure you want to permanently delete \"/tmp/foo.txt\"?" 7 60
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "File deleted.";;
1) echo "File not deleted.";;
255) echo "[ESC] key pressed.";;
esac
尽管在尝试创建它时,我运行它时出现了一些错误。基本上我想要一个是/否对话框说
Please verify your entered information:
Install SSL : $InstallSSL
Domain Name : $DomainName
etc
左侧将是静态文本,右侧将显示变量。
我正在学习日语并安装了日语操作系统以使自己沉浸在该语言中。有时我想从窗口、菜单和对话框中复制消息,以便我可以在字典上查找它们,但我做不到。我看到有很多选项可以在 Windows 中执行此操作。是否有任何类似的选项可用于 Ubuntu?
我很快将不得不将整个计算机实验室(大约 50 台 PC)从 Windows 7 迁移到 Ubuntu 14.04 LTS。因为它是一所大学,所以 99%(如果不是 100%)的时间都会被学生使用。没有用户帐户和凭据的中央数据库,因此每台 PC 将只有两个帐户,admin
并且guest
后者配置为自动登录(除了根据本教程进行的一些自定义)。
当电脑开机,来宾账户自动登录,加载窗口管理器后首先显示的是这个对话框:
但是,有两个问题:
因此,考虑到这种情况,我想要实现的是有一个与这个非常相似的对话框(但文本不同,由我设置)在计算机未使用时弹出,例如 15 分钟。(为了这个问题的目的,我们假设“未使用”意味着没有键盘或鼠标活动)。
我已被引导至 ubuntu 在挂起之前如何确定不活动? 以及 脚本如何检测用户的空闲时间? 并使用 ruby 或 sheel 脚本,但我不知道如何编码。
有没有更简单的方法来实现我需要的?