shell script learn

來源:互聯網
上載者:User

之前寫測試程式使用指令碼引發了興趣,結合具體案例,檢驗學習成果。終於看懂了一個稍微複雜的shell指令碼。裡面還是有很多技巧性的東西存在。

聲明的變數名,BLUETOOTH_SLEEP_PATH沒有用到 [html]  view plain copy BLUETOOTH_SLEEP_PATH=/proc/bluetooth/sleep/proto   LOG_TAG="qcom-bluetooth"   LOG_NAME="${0}:"  


聲明函數

$# ----傳遞給程式的總的參數數目
$? ----上一個代碼或者shell程式在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程式的所有參數組成的字串。
    $- ----在Shell啟動或使用set命令時提供選項
    $? ----上一條命令執行後返回的值
    $$ ----當前shell的進程號
    $! ----上一個子進程的進程號
    $@ ----所有的參數,每個都用雙括弧括起
    $n ----位置參數值,n表示位置
    $0 ----當前shell名 [html]  view plain copy loge ()   {     /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"   }      logi ()   {     /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"   }      failed ()   {     loge "$1: exit code $2"     exit $2   }  

&符號我理解是後台啟動並執行意思,這樣$!表示上一個子進程的進程號,用法可參考test2.sh [html]  view plain copy start_hciattach ()   {     /system/bin/hciattach -n $BTS_DEVICE $BTS_TYPE $BTS_BAUD &     hciattach_pid=$!     logi "start_hciattach: pid = $hciattach_pid"     echo 1 > $BLUETOOTH_SLEEP_PATH   }      kill_hciattach ()   {     echo 0 > $BLUETOOTH_SLEEP_PATH     logi "kill_hciattach: pid = $hciattach_pid"     ## careful not to kill zero or null!     kill -TERM $hciattach_pid     # this shell doesn't exit now -- wait returns for normal exit   }  


擷取參數並解析,跟c語言中的類似。blnp是不帶參數的,t:s:帶一個冒號表示帶參數、
預設輸出USAGE [html]  view plain copy while getopts "blnpt:s:" f   do     case $f in     b | l | n | p)  opt_flags="$opt_flags -$f" ;;     t)      timeout=$OPTARG;;     s)      initial_speed=$OPTARG;;     \?)     echo $USAGE; exit 1;;     esac   done   shift $(($OPTIND-1))  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.