[[PageOutline]] * getopts, getopt * [http://d.hatena.ne.jp/taiyo/20080211/p1 getopts - コマンド "getopt", "getopts" の使い方を把握する - spikelet days] * [http://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb bash によるオプション解析 - Qiita] * [http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/getopts%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E5%BC%95%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%28bash%E3%83%93%E3%83%AB%E3%83%89%E3%82%A4%E3%83%B3%29.html 逆引きシェルスクリプト/getoptsを利用して引数を取得する(bashビルドイン) - Linuxと過ごす] * [http://shellscript.sunone.me/signal_and_trap.html シグナルと trap コマンド - UNIX & Linux コマンド・シェルスクリプト リファレンス] > === trap コマンドの応用 2 > * trap_exit.sh > {{{#!sh > #!/bin/bash > > # EXITシグナルをtrapして終了メッセージを指定する。 > trap "echo '`basename $0`を終了します.'" EXIT > > # 他のシグナルもtrapしておく。 > trap "echo '他のシグナルをtrapしました。'" 1 2 3 15 > > # Ctrl+Cで終了するテストのためにsleepしておく。 > sleep 10 > > exit 0 > }}} > {{{ > $ ./trap_exit.sh > trap_exit.shを終了します. > ※↑終了時に EXIT シグナルを trap したメッセージが表示されている。 > > $ ./trap_exit.sh > ※ ここで Ctrl+c を押す。 > 他のシグナルをtrapしました。 > trap_exit.shを終了します. > ※↑INT シグナルで終了した場合も EXIT シグナルは trap できる。 > }}} * [http://stackoverflow.com/questions/845863/how-to-use-in-an-xargs-command bash - How to use > in an xargs command? - Stack Overflow] * {} の使い方の例(?) * ディレクトリだけを見つける * $ find -exec sh -c '[ -d "$1" ] && echo "$1"' -- {} \; {{{ . ./.ssh ./.cache ./.aptitude ./.debtags ./.screen ./public_html ... }}} * シンボリックリンクを見つける * $ find /etc/apache2/ -exec sh -c '[ -L "$1" ] && echo "$1"' -- {} \; {{{ /etc/apache2/mods-enabled/alias.conf /etc/apache2/mods-enabled/alias.load /etc/apache2/mods-enabled/autoindex.conf /etc/apache2/mods-enabled/autoindex.load /etc/apache2/mods-enabled/dir.conf /etc/apache2/mods-enabled/dir.load ... }}} * [http://stackoverflow.com/questions/6563979/linux-gnu-sort-how-to-use-null-0-as-delimiter bash - linux GNU sort: how to use NULL (\0) as delimiter - Stack Overflow] > -t is the field separator. If you want to use \0 as the line separator then you need to use -z. > > Use the -z option to sort zero-terminated data sets: > {{{ > find ./ -maxdepth 1 -type d -iname 'xyz?' -print0 | sort -z | tr '\0' '\n' > }}} * [http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/ xargs: How To Control and Use Command Line Arguments] * [http://d.hatena.ne.jp/ozuma/20130928/1380380390 shとbashでの変数内の文字列置換など - ろば電子が詰まっている] > {{{ > ${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ) > ${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ) > ${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ) > ${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ) > ${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ) > ${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて) > }}}