2017-10-18 223 views
-1

在Linux上,我使用“tee”来捕获“”命令的输出并将其打印输出日志文件,但失败。我使用的命令是这样的:如何在Linux中将“tee”与“source”命令一起使用?

source ./my_run.sh 2>&1 | tee -i my_run_log 

my_run.sh的目的是为“使”一些编译工作,以及像CDRM一些日常工作svn update。的my_run.sh内容就像如下:

make clean 
    cd .. 
    rm ./xxx 
    svn up -r 166 
    cd ./aaa/ 
    sed -i -e ...... 
    make compile 
    make run 

然而,当我运行它的“发球”是行不通的,而且不给我的日志文件在所有。为了验证整个环境还是不错的,我做了一个简单的测试:

ll 2>&1 | tee -i log 

,并在这个简单的场景中,“发球”工作完全正常,并打印出“日志”如我所料。 任何人都可以帮助我找出我的问题在哪里? 顺便说一句, 我正在的Red Hat Linux(版本5.9),使用的bash shell。 在此先感谢!

一些意见: 我做了一些测试,发现只要my_run.sh剧本已经得到了“令XXX”,在它的东西,然后在“发球”将失败。 似乎像tee不喜欢make。任何解决方案?

+0

事后寻找'my_run_log'的地方? –

+0

很难说......我只能说“它适合我” – tink

+0

@tink我尝试了更多的组合,发现如果shell中有“make xxx”的东西,那么我的“tee”会失败;如果shell没有“make xxx”,那么“tee”工作正常。似乎“tee”不喜欢“make”? – katyusza

回答

1

问题解决了;非常感谢@thatotherguy将我带入解决方案。日志输出实际上被删除了make clean进程。在修复clean东西后,在makefile之后,一切都很好。