嘗試用警告運行代碼和調試啓用:
ruby -cW2 path/to/your/code
你應該看到:
syntax error, unexpected tIDENTIFIER, expecting keyword_end
... sleep(10)
... ^
你需要做這個作爲第一STE當你遇到問題時。在啓用警告並將其設置爲最高值時,Ruby會爲您提供有關腳本問題的更多詳細信息。下面介紹一下標誌的含義:
-c check syntax only
-W[level=2] set warning level; 0=silence, 1=medium, 2=verbose
你得到這個錯誤,因爲sleep(10)
需要作爲一個單獨的語句執行。您可以在其間插入;
,並調用cURL,或將其放在一行上。爲了使命令更易於閱讀,我建議使用第二個選項。
此外,我強烈建議使用Curb gem,而不是像你一樣在子shell中啓動cURL。你正在失去靈活性,浪費CPU時間,然後在操作系統上創建一個新的shell來啓動cURL。最後,您需要學習更清晰地編寫代碼,否則您很快就會陷入困惑的角落。下面是我怎麼會寫代碼的起點:
require 'uri'
@array_timestampdate = ['start_date', 'end_date']
(1..180000).step(20000) do |userb|
(20000..180000).step(20000) do |usere|
uri = URI.parse('http://XXXXX/scripts/exportStatsCsv/testA1')
uri.query = URI.encode_www_form(
{
'start' => userb,
'end' => usere,
'startDate' => @array_timestampdate[0],
'endDate' => @array_timestampdate[1]
}
)
curl = %Q[ curl -i -s -H "Host: xxxx" "#{uri.to_s}" ]
puts curl
end
end
隨着輸出的一個小例子:
>> curl -i -s -H "Host: xxxx" "http://XXXXX/scripts/exportStatsCsv/testA1?start=1&end=20000&startDate=start_date&endDate=end_date"
...
>> curl -i -s -H "Host: xxxx" "http://XXXXX/scripts/exportStatsCsv/testA1?start=160001&end=180000&startDate=start_date&endDate=end_date"
定義「什麼也沒有」。 –