作者 主題: Linux Shell,請大家幫忙看看,給點建議~  (閱讀 1791 次)

0 會員 與 1 訪客 正在閱讀本文。

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
各位好:

 有一段Linux Shell不知道怎麼實現,請大夥幫忙看看:
 我想讓do_test1()運行完成之后不管return 為0或者1,都將運行do_test2(); 但在最后會顯示:如過return 0 ;則echo OK,如果return 1 則 echo FAIL;
幫我看看可以如何實現,感謝

代碼: [選擇]
start

if [$? = 0];then
   echo "OK";  
else
   echo "FAIL";

fi
#=================
start()
{
   do_test1
   if [$? != 0];then
       return 1
   fi

   do_test2
   if [$? != 0];then
       return 2
   fi
  
  return 0
}
#=================
do_test1()
{
   1=1
   if [$? != 0];then
     echo pass1;
     return 0
   else
     echo fail1;
     return 1;
   fi
   return 0
}

do_test2()
{
   2=2
   if [$? != 0];then
     echo pass2;
     return 0
   else
     echo fail2;
     return 1;
   fi
   return 0
}

  
« 上次編輯: 2011-03-25 11:43 由 van416 »

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
回覆: Linux Shell,請大家幫忙看看,給點建議~
« 回覆 #1 於: 2011-03-25 11:29 »
不好意思,已經搞定了

在 do_test1()后面加個嵌套

代碼: [選擇]
start

if [$? = 0];then
   echo "OK"; 
else
   echo "FAIL";

fi
#=================
start()
{
   do_test1
   if [$? != 0];then
     do_test2
       if [$? != 0];then
       return 3
       fi
       return 1
   fi

   do_test2
   if [$? != 0];then
       return 2
   fi
   
  return 0
}
#=================
do_test1()
{
   1=1
   if [$? != 0];then
     echo pass1;
     return 0
   else
     echo fail1;
     return 1;
   fi
   return 0
}

do_test2()
{
   2=2
   if [$? != 0];then
     echo pass2;
     return 0
   else
     echo fail2;
     return 1;
   fi
   return 0
}

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
回覆: Linux Shell,請大家幫忙看看,給點建議~
« 回覆 #2 於: 2011-03-25 15:35 »
這樣呢?

do_test1 ; do_test2

但不能放在 start () 裡面哦...