shell 判讀命令的返回值

tar_com=`rpm -qa|grep tar`
if [ -n tar_com ];then
  echo 'tar ok'
else
  echo 'tar no'
fi

-n : 來判定字符串非空

if [ -n str1 ]       當串的長度大於0時爲真(串非空)
上面的方法不太好

  1. 一般判斷某個包是否安裝不會使用grep去匹配,而使用rpm -qa xxx(包名),去確定指定的包是否安裝
  2. 使用 $? 去獲取上一條指令的返回碼,其中 0表示指令指令成功,否則執行失敗,此時如果執行rpm -qa|grep xxx就算沒有這個包,也不會報指令執行失敗
tar_com=`rpm -qa tar`
if [ -n tar_com ];then
  echo 'tar ok'
else
  echo 'tar no'
fi

或者

rpm -qa xxx
if [  $? -ne 0 ];then
    echo "xxx包已經安裝"
else
    echo "xxx包沒有安裝"
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章