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

需求:java

源於我一個業務實現,須要經過shell腳本去調Java程序,而且可以拿到Java裏面的返回值。mysql

 

思路:linux

衆所周知,經過shell調用Java,確定是經過 Java -jar xxx.jar 命令去調用jar的某個main函數了,若是想返回來值,最好的辦法固然是System.out.println("返回值"),能夠類比於日誌打印的方式。否則你用echo $?,只能拿到返回給OS的值了。既然經過打日誌的方式,那麼固然經過>方式存入某個日誌文件了,怎麼樣同時存儲到日誌文件而且能在屏幕上展現呢?sql

 

linux裏面有個tee命令,shell

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

詳細.sh以下:app

#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 &
相關文章
相關標籤/搜索