我有以下脚本来检测重新启动我的路由器后,当我的网络回来的:当命令作为变量传递时如何在命令替换时包含stdout/stderr重定向?
#!/bin/bash
pingCommand="ping 192.168.1.1 -c 3 &>/dev/null"
while [[ ! $($pingCommand) ]]; do
sleep 3s;
done
然而,在终端中运行时,它打印:
平:未知的主机&>的/ dev/null的
我跑与-x
选项的脚本(启用调试),并发现
ping 192.168.1.1 -c 3 &>/dev/null
正在在子shell执行作为
ping 192.168.1.1 -c 3 '&>/dev/null'
如何更改我的命令替换呼,这样的bash不把周围的输出重定向单引号?
http://mywiki.wooledge.org/BashFAQ/050 – 123