簡體   English   中英

無法在ubuntu上執行bash主機指令碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM