Bash

更改腳本以使用whiptail而不是zenity

  • March 29, 2014

我很難將一些基於 zenity 的腳本轉換為使用whiptail。

工作腳本如下所示:

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

我正在嘗試將其轉換為使用whiptail,但一直出現空白螢幕。

這是我到目前為止所擁有的:

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

我究竟做錯了什麼?

您看不到輸入框的原因是因為whiptail將顯示寫入您正在擷取的標準輸出。輸入的結果將寫入您未擷取的 stderr。要完成這項工作,您需要將命令替換為 capture stderr,而不是stdout。您可以通過重定向來做到這一點:

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

引用自:https://unix.stackexchange.com/questions/122157