java -version為stderr輸出,獲取java版本需要重定向
現象
今天寫一個初始化伺服器指令碼,想獲取java版本,結果使用java -version一直無法使用sed與awk處理,經過實驗,發現
java -version輸出為stderr,無法處理。
測試
# 將命令輸出2 stderr與1 stdout分別輸出到指定檔案,檢視檔案內容,驗證java -version輸出為stderr [root@template yum.repos.d]# java -version 2>/tmp/java_version_stderr.out 1>/tmp/java_stdout.out [root@template yum.repos.d]# cat /tmp/java_version_stderr.out openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) [root@template yum.repos.d]# cat /tmp/java_stdout.out #可以看到java -version輸出為stderr,所以我們如果想繼續處理java -version輸出,需要重定向到stdout
解決
java_ver=`java -version 2>&1 | sed '1!d'|sed 's/"//g'|awk '{print $NF}'|awk -F'.' '{print $1$2}'`
參考
https://blog.csdn.net/10km/article/details/98481428
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2695593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java獲取當前秒數輸出Java
- java -version重定向到檔案Java
- Java中執行程式並獲取輸出Java行程
- JDK版本為5.0但java -version卻顯示版本號為1.4.2的原因JDKJava
- java截獲標準輸出(2)(轉)Java
- java截獲標準輸出(1)(轉)Java
- Linux輸入輸出重定向Linux
- Java 輸入輸出流Java
- JAVA輸入輸出流Java
- Linux c程式中獲取shell指令碼輸出(如獲取system命令輸出)LinuxC程式指令碼
- Linux 重定向輸出Linux
- python 輸出重定向Python
- Java讀取本地檔案內容並輸出Java
- 從Java金鑰庫讀取輸出私鑰Java
- java 獲取物件大小Java物件
- Java classpath的獲取Java
- linux--輸入輸出重定向Linux
- Java —— 標準輸入輸出Java
- Java基礎輸入輸出Java
- shell基礎-輸出重定向
- Java 獲取Word字數Java
- java後臺獲取cookieJavaCookie
- Java獲取本機IPJava
- java獲取unicode碼JavaUnicode
- 重定向子程式標準輸入輸出
- Linux下的輸入/輸出重定向Linux
- Linux更換jdk版本,java -version還是原來的版本問題LinuxJDKJava
- 新版本Jenkins(Version>2.357)相容低版本JAVA專案部署JenkinsJava
- [JAVA] xml遍歷輸出JavaXML
- 轉:Linux輸入輸出錯誤重定向Linux
- Java------簡單的輸入/輸出Java
- JAVA筆記(12)——輸入和輸出Java筆記
- Java中的輸入輸出總結Java
- java_檔案輸入與輸出Java
- Java獲取使用者IPJava
- Java獲取當前星期幾Java
- java獲取當前時間Java
- java獲取音訊時長Java音訊