我有以下脚本来检测我的网络在重新启动路由器后何时恢复:
#!/bin/bash
pingCommand="ping 192.168.1.1 -c 3 &>/dev/null"
while [[ ! $($pingCommand) ]]; do
sleep 3s;
done
但是,在终端中运行时,它会打印:
ping: 未知主机 &>/dev/null
我使用选项(启用调试)运行脚本-x
并发现
ping 192.168.1.1 -c 3 &>/dev/null
在子shell中执行为
ping 192.168.1.1 -c 3 '&>/dev/null'
如何更改我的命令替换调用,以便 bash 不在输出重定向周围加上单引号?