經過多年的'只看'我終於需要你的幫助! 我找不到這個謎題的解決方案。命令輸出和字符串比較
我想做一個腳本,檢查服務器是否在我的Ubuntu平臺上運行,如果有回聲「smthing」else echo「other_thing」。
我在開始時被阻塞,因爲我需要檢查我的localhost:端口進行連接。
我正在使用「nc -zv localhost 80」進行測試。
我的想法:如果端口80回顯「是」,如果不回顯「否」
我總是得到錯誤或錯過結果,因爲代碼似乎不好。
#! /bin/sh
cmd=`nc -zv localhost 80`
answer="Connection to localhost 80 port [tcp/http] succeeded!"
if [ "$cmd" = "$answer" ]; then
echo "Yes"
else
echo "No"
fi
exit 0
謝謝!
該腳本似乎很好(在http://www.shellcheck.net/中粘貼它只是顯示了使用'$()'而不是反引號)的建議。我不知道什麼是錯的。 'nc -zv localhost 80'的輸出是什麼?如果你說'echo「$ cmd」',你會得到什麼? – fedorqui
我實際上是'printf'%q \ n'「$ cmd」',而不是'echo「$ cmd」',以確保顯示任何隱藏的字符。 –
......雖然看上下文,但很明顯,小二郎和那個男人有權利。 –