更改脚本以使用 Whiptail 而不是 zenity

更改脚本以使用 Whiptail 而不是 zenity

我很难将一些基于 zenity 的脚本转换为使用鞭尾。

工作脚本看起来像这样:

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(zenity \
--entry \
--title="Username" \
--text="Enter your Username")

我正在尝试将其转换为使用鞭尾,但始终出现空白屏幕。

这是我到目前为止所拥有的:

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(whiptail \
--inputbox "Username" 10 30)

我究竟做错了什么?

答案1

您看不到输入框的原因是因为whiptail将显示写入您正在捕获的标准输出。输入的结果被写入 stderr,但您没有捕获它。为了使其工作,您需要命令替换来捕获stderr,而不是stdout。您可以通过重定向来做到这一点:

#!/bin/bash
xfreerdp /v:farm.company.com \
/d:company.com \
/u:$(whiptail \
--inputbox "Username" 10 30 3>&1 1>&2 2>&3)

相关内容