是否有一种可靠的方法可以利用路径名扩展将文件名分配给变量?
这有效,但看起来有点狡猾:
the_file="$(echo ~/downloads/stack-*-linux-x86_64-static.tar.gz)"
Run Code Online (Sandbox Code Playgroud)
如果文件存在,则将其完整路径分配给$the_file
,否则会出现虚假的 glob 模式。
一些背景:有时我的 wi-fi 连接突然断开,所以我输入sudo ifconfig wlan0
并检查单词RUNNING
。相应的行如下所示:
UP BROADCAST RUNNING MULTICAST [...]
Run Code Online (Sandbox Code Playgroud)
当连接断开时,没有RUNNING
设置;我无法连接到任何东西,但接口仍在运行。
我正在考虑编写一个脚本来定期检查RUNNING
状态。为了提取该字符串,使用awk
会是这样的:sudo ifconfig wlan0 | awk '/RUNNING/ {print $3}'
。
是否有另一种方法,例如检查文件系统而不是解析 ifconfig 的输出?
我正在使用 Debian Wheezy。
谢谢。
更多信息:
好的,刚刚做了一些研究并澄清了一些概念上的混乱。
在UP
和RUNNING
标志是不同的。第一个表示接口“当前已初始化”[1],即“系统为接口分配了资源”[2]——它没有说明数据包传输。
该RUNNING
标志实际上表示正在发送和接收数据包。显然,如果例如以太网电缆被拔掉,这个标志就会消失。
[1] https://docs.oracle.com/cd/E19253-01/816-4554/ipconfig-141/index.html
我不知道我的(或任何)无线连接发生了什么,但结果是一样的:当连接完全丢失时,接口保持开启(我的笔记本电脑中的 Wi-Fi LED 灯仍然亮着)。