Phi*_*ide 6 bash ping subshell
我有一个简单的脚本来检查接口是否已连接:
connected=$(ping -I $1 -qc 1 8.8.8.8 \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1
Run Code Online (Sandbox Code Playgroud)
我期望它应该简单地返回“已连接”或“未连接”。当我实际使用脚本时,我总是在输出之前收到警告。
ping: Warning: source address might be selected on device other than enp0s25.
not connected
Run Code Online (Sandbox Code Playgroud)
这里的警告是什么,它不应该是子外壳的一部分吗?
Ste*_*itt 18
警告被发送到ping的标准错误,它没有被捕获。如果您想忽略它,请将其/dev/null明确重定向到:
connected=$(ping -I $1 -qc 1 8.8.8.8 2>/dev/null \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1
Run Code Online (Sandbox Code Playgroud)