pretty code

2022年1月25日 星期二

Shell Script 速成

記錄一下常用語法,懶得每次都要 Google 或是看 PDF 電子書。

變數篇

變數宣告
ABC=XXXXXXX
$ABC

要傳遞出去變環境變數
export ABC=XXXXXX

雙引號中的變數會被展開,單引號則是普通字串
"${ABC}/${DEF}"

上次指令結果
$?

將指令結果變成變數
ABC=$(ls | grep XX) or ABC=`ls | grep XX)

取得不含指令本身之目錄名稱,%表示從後面找最短匹配並丟掉
$(dirname $0)
${0%/*}

Array
$Ans=(1258 1414)

取 Array 第一個元素
${Ans[$i]}

取得 Array 元素個數
${#Logs[@]}


流程篇

[ ] 前後要留一個空格

隱形 if ~ then 語法
$ABC 存在則做某事,-d 則是表示目錄
[ -e $ABC ] && do something

if 語法,有特殊字元要跳脫,例如大於或小於
if [ "$? == "0" ]; then
    echo "ok"
else
    echo "error"
fi

不需跳脫 <
if [[ $ABC < $DEF ]]; then
    echo '$ABC < $DEF'
fi

for loop 使用
for ((i=0; i<$max; i=i+1))
do
     echo $i
done

Logs=("abc" "def")
for log in ${Logs[@]}
do
    echo $log
done

沒有留言: