Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / 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 nameexpr match 第二个参数是正则表达式,因此匹配功能比较强大。如果匹配失败,则返回0,否则返回大于0的整数。