[英]Trouble running a bash host script on ubuntu
我的同事寫了一個腳本來顯示我需要指出的IP地址在我們網絡中的主機名。 問題是我已經確認該腳本可以在CentOS上正常運行。 我目前無法訪問不受限制的CentOS框,因此我只能使用命令行Ubuntu並在其中使用沙箱。 由於某種原因,同一腳本將無法正常工作,並且想知道是否有人可以將我指向正確的方向?
這是腳本:
#!/bin/sh
ipranges="
173.225.176
127.0.0
"
for r in $ipranges; do
for i in `seq 1 255`; do
host $r.$i|grep -vi 'not found'
done
done
我還嘗試將shebang行也更改為/ bin / bash,但沒有運氣。 我當前收到的錯誤是使用Ubuntu的以下錯誤:
輸出:
$ sh script.sh
socket.cL1915: internal_send: 0.0.0.1#53: invalid argument
如果有人需要知道這一點,那么在需要此知識的情況下,我們可以通知使用了哪些IP向ARIN提交報告。 感謝任何人都可以提供我的幫助!
我認為問題是ipranges
變量中的空行。 表達式host $r.$i
似乎擴展為host .1
,它似乎由您的宿主實現解釋為0.0.0.1
。 (不幸的是,我無法在盒子上復制它,但這似乎是一個合理的解釋。)
嘗試省略空行,或者更好:將所有IP地址寫成一個,甚至更好:使用適當的bash數組 (但是您應該明確使用/bin/bash
作為shebang)。
如果有人想知道問題是,雖然單引號可能有效,但倒鈎似乎才是真正需要的。 我在這里遵循了本文的建議:
https://answers.yahoo.com/question/index?qid=20130805103907AAQ5CGh
基本上,將我的for語句中的單引號替換為反勾號,並且像超級按鈕一樣工作。 感謝所有嘗試提供幫助的人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.