歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

bash 腳本編程八 匹配命令輸出

當輸入java -version的時候,如果安裝了jdk,會輸出類似下面的信息:

  1. $ java -version  
  2. java version "1.6.0_34"  
  3. Java(TM) SE Runtime Environment (build 1.6.0_34-b04)  
  4. Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)  
可以用expr match對輸出結果進行查找,如果找到子字符串"java version",就認為Java可用。
  1. #!/bin/bash   
  2.   
  3. v=`java -version 2>&1`  
  4.   
  5. echo 'check java platform...'  
  6.   
  7. pos=`expr match "$v" 'java'`  
  8. if [ $pos -gt 0 ]  
  9. then  
  10.     echo 'java was installed'  
  11. else  
  12.     echo 'java was not installed'  
  13. fi  
2>&1 這個命令很奇怪,簡稱"二大爺的"。

2是stderr,1是stdout 

2>1就是將stderr重定向到stdout, 1前面用&是為了告訴bash  1是file descriptor而不是file name

expr match 第二個參數是正則表達式,因此匹配功能比較強大。如果匹配失敗,則返回0,否則返回大於0的整數。

Copyright © Linux教程網 All Rights Reserved