SHELL開發時常用函數

    版本為 22:33, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    一些很實用的函數範例

    Check_Myself

    用途:檢查自身程序是否已經執行中,如果有,程序立即跳離,可避免同一個 script 重複被執行。

    PID=$$
    SCRIPT_NAME=`basename $0`
    OWNER=`whoami`
    SCRIPT_PID="/tmp/$SCRIPT_NAME.$OWNER.pid"
    
    Check_Myself(){
      if [ ! -e $SCRIPT_PID ];then
          RUNCOUNT=0
      else
          PROCPID=`cat $SCRIPT_PID`
          RUNCOUNT=`ps -fp $PROCPID | grep $SCRIPT_NAME | wc -l`
      fi
    
      if [ $RUNCOUNT -eq 0 ];then
          echo $PID > $SCRIPT_PID
      else
          echo "Abort: The process is already running..."
          exit 1
      fi
    }
    
    Check_Myself
    

    getopts 指令參數

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    Pause 暫停

    用法: pause

    可用於程式開發及偵錯

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    Error 錯誤訊息

    用途:輸出錯誤訊息

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    詢問 Yes/No

    用法: getyn "Would you like to install WANPIPE now? [y]"

    $NONINTERACTIVE  如果程式執行時,不想讓 user 做任何的輸入時,可以為 1
    NONINTERACTIVE=1 ,或者 = 空白,以顯示相關的提示訊息

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)
    Powered by MindTouch Core