4

これがどのように機能しないのか理解できません:

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」などの引用符を使用してみましたが、それでもうまくいきませんでした。

これはうまくいきます:

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ループ内のファイルが表示されないのはなぜですか?

4

2 に答える 2

0

あなたの bash スクリプトは、 の各サブディレクトリでcatファイルを呼び出そうとしていますが、ファイルが見つかりません。2 番目の例では、単純に文字列を ing すると、問題なく出力されます。operstate/sys/class/netecho

于 2013-07-01T02:05:57.920 に答える