→ danny8376:2>&1 把stderr導到stdout就好了 02/27 01:37
→ pizzahut:了解,明天去公司試試。感謝提供方向。 02/27 02:01
直接下指令:echo $(nc -v -w 1 xxx.xxx.xxx.xxx -z yyyy) | grep open | wc -1
可以正確抓到 1 的數值
但是,如果把他寫成條件式就抓不到,不清楚為啥 @@
條件式寫法:
(前面省略)
result=$(nc -v -w 1 $ip -z $port 2>&1)
if "[ "$(echo $result | grep "open" | wc -1)" == 1 ];
then echo -e "connection succeeded."
elif "[ "$(echo $result | grep "refused" | wc -l)" == 1 ];
then echo -e "connection failed."
else echo -e "connection data error!"
fi
(後面省略)
※ 編輯: pizzahut 來自: 60.248.152.80 (02/27 10:05)
→ tkcn:我記得 nc 好像有兩個實作耶 02/27 10:26
→ pizzahut:找到問題了,跟雙引號有關... @@~ 02/27 11:05
推 soem:那個if對吧 02/27 20:03
→ pizzahut:嗯,第一個if這樣標雙引號好像會讓系統判別錯誤@@ 03/01 21:47