![如何识别“sudo ...”命令输出格式?](https://linux22.com/image/139904/%E5%A6%82%E4%BD%95%E8%AF%86%E5%88%AB%E2%80%9Csudo%20...%E2%80%9D%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E6%A0%BC%E5%BC%8F%EF%BC%9F.png)
我附上 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)。