2012年2月24日 星期五

Shell script 技巧 - 20120224

# 設定 debug 用的 print
DEBUG=0 時不會顯示 debug 訊息,DEBUG=1 時則會顯示
DEBUG=0

if [ "${DEBUG}" == "1" ]; then
    DPRINT="echo"
else
    DPRINT=":"
fi

${DPRINT} "debug message"
# 將 16 進位數字轉成 10 進位
HEX_NUM 是 FF, 則 DEC_NUM 會變成 255
HEX_NUM=FF
DEC_NUM=$((16#${HEX_NUM}))

# 將 10 進位數字轉成 16 進位
DEC_NUM 是 10000, 則 HEX_NUM 會變成 2710
DEC_NUM=10000
HEX_NUM=`echo "obase=16; ${DEC_NUM}" | bc`

# 取得字串長度
len 的值會是 17
DATA="get string length"
len=${#DATA}

# 取出字串內的子字串
${DATA:x:y} 裡 x 代表從第幾位開始 ( 0 base ), y 代表取幾個字
DATA_CHAR1 是 get
DATA_CHAR2 是 subst
DATA="get substring"
DATA_CHAR1=${DATA:0:3}
DATA_CHAR2=${DATA:4:5}

沒有留言:

張貼留言