fc2ブログ

getoptとかgetoptsとか

メモ

bashのgetopts、コマンドのgetopt。オプションをアルファベットで指定。
getoptsの場合、パース結果は2番目の引数で指定した変数にgetopts呼ぶ度に格納される。引数付きのオプションには、":"を付ける。
getoptの場合、パース結果は変数に設定しておいて、それをset -- "$X"とかで引数に設定してshiftで処理な流れ。

参考記事

ALL about Linux: オプション解析(getoptsとgetoptの使い分け)


getopts - コマンド "getopt", "getopts" の使い方を把握する - spikelet days


コマンド例

25 Even More – Sick Linux Commands « UrFix's Blog


Linuxで使えるクレージーな小技コマンドいろいろ | IDEA*IDEA

情報ソース。


気になったのが以下。

特定の拡張子以外削除

rm !(*.foo|*.bar|*.baz)

エイリアス外しでコマンド実行

\[command]

bash コマンド履歴検索

~/.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追記、上で:の後にスペース入れると駄目だ

bashで多重起動を防止するスニペット

#!/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
bashで多重起動を防止する

上のスニペットはここから引用しました。


多重起動を防ぐシェルスクリプト - zenpouの日記

同様のスクリプトを公開されています。


awk メモ

The GNU Awk User's Guide - Table of Contents

gawkのユーザーガイド和訳


後方参照 - 日本 GNU AWK ユーザー会 0.2

awkでも後方参照ができるとのこと。gensub()による方法とmatch()結構便利。


添削って

404 Blog Not Found:勝手に添削 - find(1)

findをみんなどうやって使ってるかわかる。自分まだまだ使いきってい ないと思い知った。

Bash スクリプトガイド

MACSTUDIO BLOG :: Bash スクリプトガイドより

過去に出版もしていた Mendel Cooper 氏による「Advanced Bash-Scripting Guide」。中上級者向け。

Advanced Bash-Scripting Guide

ボリュームもあり知らないことが書いてあるかも

あるあるUNIXの小技

Geekなぺーじ:10のUNIX小技

ほとんど知っていたけど、知らなかった技が結構使えそうっだったのでメモ。

[shell] 「[linux-users:106990] パイプラインの途中のコマンドの終了ステータス」 (linux-users ML) - メモの日々 (…

さしあたって特に必要にはならないとは思うけれどφ(・_・”)メモメモ

コマンド

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を含むファイルを発見する