Bash tee命令创建空文件

Bash tee命令创建空文件,bash,list,loops,tee,Bash,List,Loops,Tee,您好,我有下面生成的股票列表,它放在名为awk_1的文件中 dfs fsd dsf sdf 然后我运行下面的一个liner,它生成正确的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\=o

您好,我有下面生成的股票列表,它放在名为awk_1的文件中

dfs
fsd
dsf
sdf
然后我运行下面的一个liner,它生成正确的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_URL的文件中

它还会在屏幕上生成奇怪的输出,下面是我得到的标准输出的一小部分输出。它把./large_cap_stocks.sh:51:./large_cap_stocks.sh:在前面,在后面找不到,为什么会发生这种情况

我一直在到处寻找为什么这不起作用。如果能帮上忙,我将不胜感激


谢谢

你可能想这样写:

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命令中,使用。。。要引用文本而不是$。。。哪个是别的 使用管道操作符|将输出传递到T形三通,您可以通过这种方式对整个回路进行管道输送,而无需对单个回波线进行管道输送。
您是否尝试使用$作为报价?您似乎试图将URL作为命令运行。如果要将echo的输出作为tee的输入,则需要一个管道。@user1380599将代码块和输入文件保留在距行首4个空格处,选择所有代码并按{},使其显示为代码,否则,格式会被破坏,代码实际上无法读取。如果您想存储stderr,则很难读取isChange | to |&bash 4+或2>&1,不知道用户在这种情况下是否存储了stderr,但可能会有用。@user1380599单击答案旁边的复选标记,这样,如果此答案解决了您的问题,代码将被标记为已解决。