他の開発者にも少し便利な方法があればと思います。したがって、私はそれらにエイリアスを自動的に設定するスクリプトを提供したいと思います。
たとえば、このコマンドはgrunt compileModule:[modulename]
エイリアスをcprev
そのコマンドに設定する必要があります。エイリアスを設定した後もコマンドを実行する必要があります。
私たちは通常何日も同じモジュールで作業しているので、エイリアスにもファイルにエントリが必要です~/.bashrc
(これは主な「機能」なので、bashを閉じるたびに再入力するときにコマンド全体を入力する必要はありません)。
現在、最後のコマンドの実行などを見つける方法に関する多くの投稿がありますが、history
必要な結果を生成するためにすべての情報を並べ替える方法が見つかりません。
のエイリアスを作成しようとしていますgrunt
。
それはまるで
alias grunt='~/myScriptForAliasHistory.sh;grunt $1';
これは適切ですか?
編集する
これをより明確に説明すると、次のようになります。
元のコマンドは
grunt compileModule:[name]
修正後は次のようになります。
一つだけすればいい追加ステップ、電話をかけられるように同じ機能〜のように
cprev
そして(同じパラメータを使って)
ワークフローは次のとおりです。
- 開発者は新しいモジュールの作業を開始します。それをコンパイルするために彼は
grunt compileModule:[name]
。 - 同じ開発者がbash/pc/コンソールを再起動する必要があります。今、彼はコマンド全体を書き換えたくないので、入力して
cprev
実行するだけですgrunt compileModule:[name]
。 - 翌日、彼はモジュールの作業を開始し、以下
[anothername]
を実行します。grunt compileModule:[anothername]
- 今すぐ再起動するとコマンドが
cprev
実行されますgrunt compileModule:[anothername]
つまり、呼び出されるたびにgrunt compileModule
現在の呼び出し引数でエイリアスを上書きする必要があります。cprev
答え1
履歴拡張を使用すると、!
エイリアスや関数なしでこれが行われます。
$ grunt compileModule:[something]
$ # other things
$ !grunt
最後のコマンドは、シェルが!grunt
コマンドライン履歴でその文字列で始まる最後のコマンドを見つけてgrunt
実行するようにします。
存在するbash
:
!string
で始まる履歴リストの現在の位置より前の最新のコマンドを示します
string
。
これは、シェルに継続的な履歴(通常は設定で有効)がある場合は連続HISTFILE
シェルセッションでも機能し、シェルに応じて同時セッションでも機能します。