2014-01-13 161 views
1

您好我有一個產生,它被放置在文件中調用awk_1tee命令創建空文件

dfs 
fsd 
dsf 
sdf 

我然後運行下面的一個襯墊,其產生正確的ULR股名單如下鏈接

while read i ; do 
    echo $(http://uk.finance.yahoo.com/echartss=$i#symbol=$i\;range=my\;compare=\;indicator=volume\;charttype\=area\;crosshair\=on\;ohlcvalues\=0\;logscale\=off\;source\=undefined\;) tee stock_urls; 
done < awk_1 

但是不把輸出放在名爲stock_urls的文件中?

此外,它在屏幕上生成和奇怪的輸出,下面是我得到標準輸出的一小部分輸出。它將「./large_cap_stocks.sh:51:./large_cap_stocks.sh:」放在前面,最後放在「未找到」,爲什麼會發生這種情況。

我有搜索高和低爲什麼這是行不通的任何幫助將非常感激。

感謝

+1

您是否試圖使用$()作爲引號?您似乎試圖將URL作爲命令運行。如果你希望回聲的輸出成爲T恤的輸入,你需要一個管道。 – tabstop

+0

@ user1380599從行首開始保留代碼塊和輸入文件4個空格(選擇所有代碼並按'{}'),因此它顯示爲代碼,否則格式化會被破壞,代碼幾乎不可讀(難以理解) – BroSlow

回答

1

你大概的意思是寫這樣的:

while read i; do 
    echo "http://uk.finance.yahoo.com/echarts?s=$i#symbol=$i\;range=my\;compare=\;indicator=volume\;charttype\=area\;crosshair\=on\;ohlcvalues\=0\;logscale\=off\;source\=undefined\;" 
done < awk_1 | tee stock_urls 

即:

  • echo命令,使用"..."引用,而不是$(...)文本這是一件好事其他
  • 使用管道運算符|來通過s輸出到tee,你可以用這種方式管道整個循環,不需要爲個別的echo行做這些。
+1

如果您還想存儲stderr,則將'|'更改爲'|&'(bash 4+)或'2>&1 |'(不知道用戶是否在這種情況下執行操作,但可能有用)。 – BroSlow

+0

完美的工作治療謝謝! – user1380599

+1

@ user1380599在回答中單擊複選標記,以便在此答案解決您的問題時將其標記爲已解決。 – BroSlow