SHELL開發時常用函數

    版本為 22:35, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    一些很實用的函數範例

    Check_Myself

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

    pid=$$
    workdir=$( cd $( dirname "$0" ) && pwd )
    script_name=`basename $0`
    script_pid="$workdir/${script_name}.pid"
    
    Check_Myself(){
      if [ ! -e $script_pid ];then
          RUNCOUNT=0
      else
          RMANPID=`cat $script_pid`
          RUNCOUNT=`ps -fp $RMANPID | 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
    }
    
    cd $workdir
    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