パラメータ展開

パラメータにデフォルト値を設定

ユーザtaroがいなければ、UIDは999。${VAR:=default}という書式。

 UID=`grep taro /etc/passwd | cut -f 3 -d :`
 UID=${UID:=999}

文字列の先頭(末尾)を取り出す

 var="2008-07-01.jpg"
 echo ${var%.jpg}
 echo ${var#2008-}

 2008-07-01
 07-01.jpg

split

 path=/var/spool/mail/
 while [ $path ]; do
    echo ${path%%/*} # ループ1回目:"/var/spool/mail/"が取り除かれて、""がエコーされる 
                     #       2回目:"/spool/mail/"が取り除かれて、"var"がエコーされる
    path=${path#*/}  # ループ1回目:"/"が取り除かれて、pathは"var/spool/mail/"になる
                     #       2回目:"var/"が取り除かれて、pathは"spool/mail/"になる
 done

拡張子一括変換

.htmから.htmlへ

 for i in *.htm; do mv $i ${i%.htm}.html; done

http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html

拡張子を抜き出す(ドットを含まない)

パラメータの文字列の左側からパターンにマッチする部分を取り除く。

 for i in *; do echo ${i##*.}; done
  • ## 最長一致
  • # 最短一致

FQDNからホスト名を抜き出す

 _HOSTNAME=$(hostname)
 _HOSTNAME=${_HOSTNAME%%.*}

FQDNがfoo.bar.comの場合、fooを取得する。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS