Bash 拡張書式

日経Linuxの記事が役に立ちそうだったので検証。


初期設定

# HOGE=/opt/oracle/app/

# echo $HOGE
/opt/oracle/app/


先頭から一致した文字列を除外

最小範囲一致
# echo ${HOGE#/*o}
pt/oracle/app/
最大範囲一致
# echo ${HOGE##/*o}
racle/app/


末尾から一致した文字列を除外

最小範囲一致
# echo ${HOGE%o*/}
/opt/
最大範囲一致
# echo ${HOGE%%o*/}
/


指定した範囲を抽出

4文字目から6文字を抽出
# echo ${HOGE:4:6}
/oracl
5文字目から2文字を抽出
# echo ${HOGE:5:2}
or


変数に値がある場合はその値を。
無い場合は代替値を表示する。変数に代替値のセットは行わない。

変数に値がある
# echo ${HOGE-VARCHAR}
/opt/oracle/app/
変数に値が無い
#  echo ${HOGE2-VARCHAR}
VARCHAR

#  echo $HOGE2


変数に値がある場合はその値を。
無い場合は代替値を表示する。変数に代替値のセットを行う。

変数に値がある
#  echo ${HOGE:=VARCHAR}
/opt/oracle/app/
変数に値が無い
#  echo ${HOGE2:=VARCHAR}
VARCHAR

#  echo $HOGE2
VARCHAR


変数の文字数を表示する。

# HOGE=/opt/oracle/app/
# echo ${#HOGE}
16
# HOGE2=VARCHAR
# echo ${#HOGE2}
7