スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

bash補完のカスタマイズ 

bashでは[TAB]で補完が行われるが、この補完機能はプログラム可能らしい。「入門bash」の付録Dにて説明がある。

例えばgunzipを実行する時に、gunzipで解凍できるファイルだけを保管させたい場合には以下のようにしておくといいとのこと。(※CentOS6.2では、パッケージbash-completeがインストールされている事が必要で、インストールされていないと半端で不可解な挙動をするので注意。)

complete -A file -X '!*.@(Z|gz|tgz)' gunzip

こうしておくことで、*.Z、*.gz、*.tgzだけが補完候補にされるとのこと。

completeのオプションについては以下の通り。

-o OPTION    オプション
    default       補完仕様がマッチを全く生成しなかった場合に、readline のデフォルトの補完を用います。
    dirnames      補完仕様がマッチを全く生成しなかった場合に、ディレクトリ名を補完しようとします。
    filenames     補完仕様がファイル名を生成することを readline に伝え、readline がファイル名特有の処理(ディレクトリ名にスラッシュを加えたり、末尾の空白を削除したり、など)を行えるようにします。シェル関数と共に用いることを想定しています。
    nospace       ?

-A ACTION   アクションを指定する
    file        ファイルリストを補完する。
-X PATTERN  補完されないファイルのフィルタパターン。"!"は除外する。
            compgenに引数としてPATTERNを渡すとどのように補完されるかを確認できる。



Big Skyを見て、自分も使ってみることにした次第。perldoc-completeはgithub.comから入手。

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://haginov.blog35.fc2.com/tb.php/219-9cf34843

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。