bashコマンドメモ

某先生から教えてもらったものを、どこからでも自分が参照できるように転載。

    a=23 #スペースを入れないこと
    let a=2 #letでは$がいらない。
    a=$(cat hoge)
    b=${a/BB/CC} #BBをCCに置換して代入。いっこだけ。
    b=${a//BB/CC} #BBをCCに置換して代入。全部。
    b=${a/#BB/CC} #文字列先頭のBBをCCに置換して代入。
    b=${a/%BB/CC} #文字列末尾のBBをCCに置換して代入。
    a=$(($b+1))
    files=(`ls`) #lsの出力を配列に代入
    ${files[@]} #配列の内容全て
    ${name:-value} #nameが存在すれば$nameでなければvalue
    ${name:+value} #nameが存在すればvalue
    ${name:=value} #nameが存在すれば$nameでなければvalueを割り当て
    ${name:?value} #nameがあればvalueをstderrに出力して終了
    ${name:start:length} #nameをstartからlengthまで切り取る
    ${a#pattern} #変数の先頭から最短一致したパターンを削除
    ${a##pattern} #変数の先頭から最長一致したパターンを削除
    ${a%pattern} #変数の末尾から最短一致したパターンを削除
    ${a%%pattern} #変数の末尾から最長一致したパターンを削除
    ${!varprefix*} # varprefixで始まる変数名の一覧 
    ${!varprefix@} # varprefixで始まる変数名の一覧