當輸入java -version的時候,如果安裝了jdk,會輸出類似下面的信息:
- $ java -version
- java version "1.6.0_34"
- Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
- Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)
可以用expr match對輸出結果進行查找,如果找到子字符串"java version",就認為Java可用。
- #!/bin/bash
-
- v=`java -version 2>&1`
-
- echo 'check java platform...'
-
- pos=`expr match "$v" 'java'`
- if [ $pos -gt 0 ]
- then
- echo 'java was installed'
- else
- echo 'java was not installed'
- fi
2>&1 這個命令很奇怪,簡稱"二大爺的"。
2是stderr,1是stdout
2>1就是將stderr重定向到stdout, 1前面用&是為了告訴bash 1是file descriptor而不是file name
expr match 第二個參數是正則表達式,因此匹配功能比較強大。如果匹配失敗,則返回0,否則返回大於0的整數。