bashコマンドでパラメータを「穴」にし、最後に「埋める」方法はありますか?たとえば、「cp[hole] dir<[arg]」なので、arg は最後に表示されますか?

bashコマンドでパラメータを「穴」にし、最後に「埋める」方法はありますか?たとえば、「cp[hole] dir<[arg]」なので、arg は最後に表示されますか?

上記の内容が正しいかどうかはわかりませんが、シェルの使用でよく見られるパターンは次のとおりです。

かなり長くできるコマンドがありますが、CLI設計上必須コマンドがあります。このコマンドを複数回実行し、しばしば特定のパラメータを変更する必要があります。もちろん、すべての引数を事前に知っていればxargsなどを使用できますが、時にはそうでない場合もあります。したがって、次のようなコマンドがあるかもしれません。

cli -flag -flag X arg arg arg arg

再びXに戻る必要があるため、再実行するのは面倒です。したがって、何らかの方法で次のことをお勧めします。

cli -flag -flag HOLE arg arg arg < X

これにより、パラメータを変更したい場合は、Xを簡単に押して置き換えることができます。

可能ですか?

答え1

すべてのパラメータを事前に知っていればxargsなどを使用できますが、時にはそうでない場合もあります。

すべての主張を知っていればとは別に機能に変更されました。

myfunc () { cli -flag -flag "$1" arg arg arg arg ; }

その後、パラメータを変更して関数を呼び出します。

またはあなたは使用することができます歴史的拡張:

$ cli -flag -flag X arg arg arg arg    # Run the first time
$ ^X^Y            # will replace the first occurrence of X anywhere in the previous command with Y and run it
$ ^Y^Y2           # now replace Y with Y2 in the command that resulted from the above

my-command asterisk period comma colon履歴拡張は差別しません。すでに持っていて実行したい場合は使用できませんmy-command asterisk period apostrophe colon。この場合、関数を使用する方が良いでしょう^comma^apostrophemy-apostrophend asterisk period comma colon

関連情報