2

時々、ログ ファイルの特定の行を表示する必要があります。

$ head -10 log.txt|tail -1  # to view line 10 of log.txt

次に、生活を楽にするためにv関数を書きました。bashrc

$ v 10

わかりました、多分私はここで少し髪を分割しています: スペースも無視したいです:

$ v10

私が知っている唯一の方法は、多くのエイリアスを定義することです:

alias v1='v 1'
alias v2='v 2'
alias v3='v 3'
alias v4='v 4'
...

これに何か良い方法はありますか?


@Chirlo と @anishsane のアイデアに感謝します。

これは、@anishsane にいくつかの修正を加えた私の最終バージョンです。

eval "`declare -f command_not_found_handle | sed s/command_not_found_handle/command_not_found_handle_orig/`"
command_not_found_handle(){
    if expr match "$1" "v[0-9][0-9]*" >/dev/null ; then
       v ${1:1}
       return $?
    fi
    command_not_found_handle_orig "$@"
}
4

2 に答える 2

5

> 4 の場合はcommand_not_found_handle ()を確認してくださいbash。このケースを処理するためにオーバーライドできます。入力したときv10に bash が解決できない場合、この関数がv10最初のパラメーターとして呼び出され、それをキャッチしてそこで処理を行います。

于 2013-04-02T10:58:39.983 に答える