Linux 命令——tee 重定向到文件並打印到屏幕


需求:

源於我一個業務實現,需要通過shell腳本去調Java程序,並且能夠拿到Java里面的返回值。

 

思路:

眾所周知,通過shell調用Java,肯定是通過 Java -jar xxx.jar 命令去調用jar的某個main函數了,如果想返回來值,最好的辦法當然是System.out.println("返回值"),可以類比於日志打印的方式。不然你用echo $?,只能拿到返回給OS的值了。既然通過打日志的方式,那么當然通過>方式存入某個日志文件了,怎么樣同時存儲到日志文件並且能在屏幕上展示呢?

 

linux里面有個tee命令,

功能說明:讀取標准輸入的數據,並將其內容輸出成文件。
語  法:tee [-ai][--help][--version][文件...]
補充說明:tee指令會從標准輸入設備讀取數據,將其內容輸出到標准輸出設備,同時保存成文件(此時文件不存在會創建新文件)。
參  數:
 -a或--append  附加到既有文件的后面,而非覆蓋它. 
 -i-i或--ignore-interrupts  忽略中斷信號。 
 --help  在線幫助。 
 --version  顯示版本信息。

詳細.sh如下:

#sh ./install.sh
claspath='../lib/*:../plugins/*'
../jre/bin/java -Dbsp-mysql -Dlogback.configurationFile=../conf/logback.xml -Dbase.dir=../ -cp $claspath com.broada.bsp.mysql.TestAvgs |tee run.log 2 &

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM