console.error(`Unable to load nonexistent manifest entry ‘islands/voting-prompt’. Check that your file path is correct.`)
显示无线网络接口:
$ sudo iwconfig | grep wlp4s0
lo no wireless extensions.
enp3s0 no wireless extensions.
nekoray-tun no wireless extensions.
wlp4s0 IEEE 802.11 ESSID:"Redmi_A6F0"
为什么结果不只是一行?预期结果:
wlp4s0 IEEE 802.11 ESSID:"Redmi_A6F0"
4
最佳答案
1
你不应该使用grep
它。只需运行sudo iwconfig wlp4s0
以获取有关该特定接口的信息即可
回到你的问题,你看到的情况是因为iwconfig
写入 stdout 和 stderr。你可以通过禁用其中一个流轻松看到这一点
$ sudo iwconfig 2>/dev/null # Prints only stdout
wlo2 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
$ sudo iwconfig 1>/dev/null # Prints only stderr
lo no wireless extensions.
enp69s0 no wireless extensions.
...
这就是为什么 Nasir Riley 的答案中的这些命令有效,因为 stderr 被重定向到 stdout,以便 grep/sed/awk 可以读取该流
iwconfig 2>&1 | grep wlp4s0
iwconfig 2>&1 | sed -n '/wlp4s0/p'
iwconfig 2>&1 | awk '/wlp40/ {print}'
echo $(iwconfig 2>&1) > file
是完全错误的,因为没有双引号,shell,即删除所有换行符。这意味着的输出iwconfig
完全连接并用空格分隔,这也是错误的,因为上述命令已经确认iwconfig
输出包含多行
echo "$(iwconfig 2>&1)" > file
可以,但是会陷入,类似于。只需使用sudo iwconfig >file 2>&1
或sudo iwconfig &>file
1
-
无需使用
echo
anjd/或将输出附加到文件即可获得问题中所需的输出。这只是在我的答案中显示由于标准输出和标准错误连接而发生的情况,并且使用2>&1
将两者都发送到stdout
。我给出的实际上提供所需输出的命令不包括echo
并只是将所有内容发送到stdout
以便grep
、sed
和“awk”可以对其进行操作。
–
|
–
wlp4s0
,他想知道为什么他的命令的输出不只包含该行,而是包含每一行。–
grep
。–
–
|