如何识别“sudo ...”命令输出格式?

如何识别“sudo ...”命令输出格式?

我附上 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

答案1


每当您不确定时,请尝试将 stdout 然后 stderr 重定向到 /dev/null。
例如,使用 withlsusb -h > /dev/null您仍然可以看到输出,而使用 with 则lsusb -h 2> /dev/null没有输出 - 因此,帮助的输出将发送到 stderr。
如果您想将 stderr 重定向到 stdout:(
lsusb -h 2>&1
一开始)这并不明显,但此命令的作用是将 stderr(文件描述符 #2)重定向到 stdout(文件描述符 #1)。

相关内容