2012-08-23 20 views
1

我正在處理一個遺留系統,該系統需要向連接發送「\ r」以獲取下一行進行解析。使用cUrl和Bash模仿URL上的Java BufferedReader.readLine()

這很容易與Java:

URL url = new URL("http://some.url"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 

String line = null; 
while ((line = reader.readLine()) != null) { 
    System.out.println(line); 
} 

然而,我的UNIX技能都不是很大,所以我不知道究竟如何,甚至谷歌的這個答案。

很明顯,連接保持打開狀態,它期望發送一個「\ r」(這是BufferedReader.readLine()方法出現的地方),但我不知道如何做到這一點bash(無論是在腳本中還是從提示符中)。此外,每個搜索都包含99%的基於PHP的結果。我沒有可用的腳本語言,只是bash。

+1

我不認爲'curl'是使用的工具,因爲這聽起來像是一個部分交互式的會話(獲取一些數據,發送'\ r',獲得更多的數據)。 – chepner

+0

至少這關注我的研究。我打算將問題留待一段時間,但現在感謝。 –

回答

1

您可以讀取和寫入任意TCP端口在bash:

while read line; do 
    ... 
done < /dev/tcp/some.url/80 

echo $'\r' > /dev/tcp/some.url/80 

這給你的東西下手,反正;我不認爲以上是對您的問題的完整解決方案。