Linux下一條命令或一個進程執行完成會返回一個一個狀態碼。
0 === 成功執行
非0 === 執行過程中出現異常或非正常退出
在Shell腳本中 最后執行的一條命令將決定整個shell腳本的狀態. 此外 shell的內部命令exit也可以隨時終止shell腳本的執行,返回Shell腳本的狀態碼
當shell腳本執行結束前 的最后一個命令是不帶參數的exit ,那么 shell腳本的最終返回值 就是 exit 語句前一條語句的返回值,根據這個值可以判斷腳本成功執行與否。
$? 可以查看 最后一條命令的返回值 該變量可以在shell 腳本中的任何地方使用.
#! /bin/bash
echo "please input the branch you want to compare"
read $MY_BRANCH
for i in $(cat list)
do
git-diff --quiet $MY_BRANCH $i [--quiet 選項的意思是不要輸出比較后各個diff出來的結果]
if [ $? -eq 0 ] [$? 就是上一條命令執行的狀態碼]
then
echo $i
fi
done