我不理解这是如何不起作用:击:变量文件路径
ls /sys/class/net/wlan0
addr_assign_type broadcast device flags iflink netdev_group queues
subsystem uevent addr_len carrier dormant ifalias link_mode **operstate**
speed tx_queue_len address dev_id duplex ifindex mtu power statistics
for f in $(ls /sys/class/net/); do $(cat /sys/class/net/${f}/operstate); done
cat: /sys/class/net/eth0/operstate: No such file or directory
cat: /sys/class/net/lo/operstate: No such file or directory
cat: /sys/class/net/wlan0/operstate: No such file or directory
我猜$ F没有及时扩大了cat
。我尝试了引号,例如“$ f”,但仍然无效。
这样确实OK:
for f in $(ls /sys/class/net/); do echo /sys/class/net/${f}/operstate; done
/sys/class/net/eth0/operstate
/sys/class/net/lo/operstate
/sys/class/net/wlan0/operstate
和:
cat /sys/class/net/eth0/operstate
up
有什么我错过了?为什么cat
看不到循环中的文件?
'echo'不关心它的参数是否存在于文件系统中。 –
在/ sys/class/net/wlan0/operstate上执行ls -l – Owen
到其他设备(硬件名称)的文件链接,但是'cat'确实有效? – Edouard