Io-Redirection

如何辨識“sudo …”命令輸出格式?

  • September 25, 2018

我附上了 bash -x 輸出,它顯示命令“sudo iwlist wlan0 scan”已執行並將預期文本返回到終端。問題是 - 此文本未傳遞給whiptail msgbox 選項。

其他“sudo …”命令失敗,並且僅使用“sudo .. 命令。我的猜測是輸出文本中有非列印字元導致此問題。

sudo iwlist wlan0 scan
wlan0     Interface doesn't support scanning : Network is down

whiptail --title 'Command sudo iwlist wlan0 scan output 1400'       -   -separate-output --scrolltext --msgbox '' 17 80 10

每當您不確定時,請嘗試將 stdout 然後 stderr 重定向到 /dev/null。

例如,lsusb -h > /dev/null您仍然可以看到輸出,而lsusb -h 2> /dev/null沒有輸出 - 因此,幫助的輸出轉到 stderr。

如果您想將 stderr 重定向到 stdout:

lsusb -h 2>&1

這並不明顯(起初),但此命令的作用是將 stderr(文件描述符 #2)重定向到 stdout(文件描述符 #1)。

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