Bash
更改腳本以使用whiptail而不是zenity
我很難將一些基於 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。要完成這項工作,您需要將命令替換為 capturestderr
,而不是stdout
。您可以通過重定向來做到這一點:#!/bin/bash xfreerdp /v:farm.company.com \ /d:company.com \ /u:$(whiptail \ --inputbox "Username" 10 30 3>&1 1>&2 2>&3)