メモ
bashのgetopts、コマンドのgetopt。オプションをアルファベットで指定。
getoptsの場合、パース結果は2番目の引数で指定した変数にgetopts呼ぶ度に格納される。引数付きのオプションには、":"を付ける。
getoptの場合、パース結果は変数に設定しておいて、それをset -- "$X"
とかで引数に設定してshiftで処理な流れ。
bashのgetopts、コマンドのgetopt。オプションをアルファベットで指定。
getoptsの場合、パース結果は2番目の引数で指定した変数にgetopts呼ぶ度に格納される。引数付きのオプションには、":"を付ける。
getoptの場合、パース結果は変数に設定しておいて、それをset -- "$X"
とかで引数に設定してshiftで処理な流れ。
気になったのが以下。
特定の拡張子以外削除
rm !(*.foo|*.bar|*.baz)
エイリアス外しでコマンド実行
\[command]
~/.inputrcに以下を追記。とっても気に入った機能。最初にちょこっと入力して、入力した分で始まる過去のコマンドを検索して次々表示してくれる。
$if Bash C-p: history-search-backward C-n: history-search-forward $endifファイル書き込み直後は、以下でファイルから読み込める
$ bind -f ~/.inputrcコマンドラインで単独で設定する場合
$ bind "\C-n":history-search-forward $ bind "\C-p":history-search-backward
2009.12.4追記、上で:
の後にスペース入れると駄目だ
#!/bin/bash BASENAME=`basename $0 .sh` PID_FILE="$BASENAME.pid" if [ -f $PID_FILE ]; then STORED_PID=`cat $PID_FILE` if (ps -p ${STORED_PID} -o pid= >/dev/null); then echo "Locked by PID($STORED_PID)" exit fi fi echo $$ > $PID_FILE # ここに処理を書く sleep 10 rm $PID_FILE
上のスニペットはここから引用しました。
同様のスクリプトを公開されています。
gawkのユーザーガイド和訳
awkでも後方参照ができるとのこと。gensub()による方法とmatch()結構便利。
過去に出版もしていた Mendel Cooper 氏による「Advanced Bash-Scripting Guide」。中上級者向け。
for f in `/usr/bin/ls -1`; do if [ -f $f ]; then nm -A $f 2> /dev/null | grep pp_get_context; fi done
カレントディレクトリにあるファイルからシンボルpp_get_contextを含むファイルを発見する