コマンド実行時にエイリアスを設定するには?

コマンド実行時にエイリアスを設定するには?

他の開発者にも少し便利な方法があればと思います。したがって、私はそれらにエイリアスを自動的に設定するスクリプトを提供したいと思います。

たとえば、このコマンドはgrunt compileModule:[modulename]エイリアスをcprevそのコマンドに設定する必要があります。エイリアスを設定した後もコマンドを実行する必要があります。

私たちは通常何日も同じモジュールで作業しているので、エイリアスにもファイルにエントリが必要です~/.bashrc(これは主な「機能」なので、bashを閉じるたびに再入力するときにコマンド全体を入力する必要はありません)。

現在、最後のコマンドの実行などを見つける方法に関する多くの投稿がありますが、history必要な結果を生成するためにすべての情報を並べ替える方法が見つかりません。

のエイリアスを作成しようとしていますgrunt

それはまるで

alias grunt='~/myScriptForAliasHistory.sh;grunt $1';

これは適切ですか?

編集する

これをより明確に説明すると、次のようになります。

元のコマンドは

grunt compileModule:[name]

修正後は次のようになります。

一つだけすればいい追加ステップ、電話をかけられるように同じ機能〜のように

cprev

そして(同じパラメータを使って)

ワークフローは次のとおりです。

  1. 開発者は新しいモジュールの作業を開始します。それをコンパイルするために彼はgrunt compileModule:[name]
  2. 同じ開発者がbash/pc/コンソールを再起動する必要があります。今、彼はコマンド全体を書き換えたくないので、入力してcprev実行するだけですgrunt compileModule:[name]
  3. 翌日、彼はモジュールの作業を開始し、以下[anothername]を実行します。grunt compileModule:[anothername]
  4. 今すぐ再起動するとコマンドがcprev実行されますgrunt compileModule:[anothername]

つまり、呼び出されるたびにgrunt compileModule現在の呼び出し引数でエイリアスを上書きする必要があります。cprev

答え1

履歴拡張を使用すると、!エイリアスや関数なしでこれが行われます。

$ grunt compileModule:[something]

$ # other things

$ !grunt

最後のコマンドは、シェルが!gruntコマンドライン履歴でその文字列で始まる最後のコマンドを見つけてgrunt実行するようにします。

存在するbash

!string

で始まる履歴リストの現在の位置より前の最新のコマンドを示しますstring

これは、シェルに継続的な履歴(通常は設定で有効)がある場合は連続HISTFILEシェルセッションでも機能し、シェルに応じて同時セッションでも機能します。

関連情報