我有以下腳本來檢測重新啓動我的路由器後,當我的網絡回來的:當命令作爲變量傳遞時如何在命令替換時包含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