2012-01-19 55 views
11

我遇到了我的bash腳本問題。它生產的Bash - Curl(6)無法解析主機問題

curl (6) couldn't resolve host

錯誤我做了什麼錯?

以下是我的bash腳本。

#!/bin/bash 

string="$(mysql -u root -p Company 'select name from HR')" 
url="http://www.company.com/company/hr/$string" 

curl -F $url 
+0

我的錢在string ='name blah'你期望'blah'的地方。使用'--skip-column-names' –

+0

只需用'ping $ url'檢查你的url,看看它是否回覆。否則,請更正網址。 – 2012-10-23 15:26:00

回答

3

嘗試打印出整個字符串/ URL。我相信它應該有一些問題。

2

你能不能「www.company.com」(我假設這不是你連接到真正名)呢?

curl之前,可能需要打印出$url變量,因爲它可能格式錯誤。

還有一件最後的事情。您是否確定您應該使用-F?這似乎是自動填表。是否有可能你想「默默地失敗」選項-f

+0

是的,我可以。也可以在終端上做一個捲曲。其實我正在捲曲IP地址。我想實際上做一個與該網址的帖子。 – Hend

4

根據man curl,錯誤6表示「無法解析主機,給定的 遠程主機未解析。」所以你將不得不檢查url的主機名是否可以解析爲一個ip地址。

當您需要將數據與下面的表格提交到服務器,例如

<form method="POST" enctype='multipart/form-data' action="upload.cgi"> 
    <input type=file name=upload> 
    <input type=submit name=press value="OK"> 
</form> 

你能做到這與以下等價捲曲。 (請確保您 提交的服務器準備好過於接收數據)

curl -F [email protected]filename -F press=OK [resolv-able url] 
0

只是爲了完整:如果網絡出現問題,也會發生這種情況。

例如,要測試這一點,請在本地計算機上關閉與互聯網的連接並嘗試連接到URL:返回完全相同的錯誤。

因此,目前我不知道如何區分遠程服務器上的問題與我們自己網絡上的問題。