Bash、現在のコマンドの最後に使用された引数の挿入

Bash、現在のコマンドの最後に使用された引数の挿入

最後の引数を使用して前のコマンドを呼び出すことも、古い引数を使用して!$ループを呼び出すこともできますが、ALT + .現在使用中のコマンドの最後の引数を呼び出すことはできますか?

例えば、

root@chip:/# echo peckahs
root@chip:/# *_stuffthatdoesntmatter_*
root@chip:/# *_stuffthatdoesntmatter_*
root@chip:/# *_stuffthatdoesntmatter_*
root@chip:/# echo peckahs < used key shortcut to recall 'peckahs' the last used argument for echo

ベストアンサー1

Bashを使用すると、次のように要求するほとんどすべての操作を実行できます。

echo !echo:$

だからあなたがするとき

echo This is fun
ls
echo !echo:$

出力の最後の行は、funコマンドに一致するすべての引数を生成する*代わりに;$

echo This is fun
ls
echo !echo:*

This is fun再度出力しますが、そうすることもできます。

!echo

この場合。

これは、同じコマンドを使用してコマンドのパラメータを繰り返すことに限定されません。

printf !echo:*

バラよりバッシュリファレンスマニュアルもっと学ぶ。histverifyこれを実行する前にコマンドを確認する機会を提供するシェルオプションと組み合わせることで、キーボードベースの対話型履歴の完成に近づくことができます。

たとえば、履歴拡張はどこでも使用できます。

lastechoargs="!echo:*"

最後のコマンドのすべてのパラメータを変数echoに保存しますlastechoargs

これは完全なコマンドにも当てはまります。たとえば、複雑なコマンドを作成しgitてファイルに保存したい場合です。

echo !git > mygitcommand

あるいは、いくつかのディレクトリを保持したいのですが、まずいくつかのファイルを削除することにしました。

ls dir1 dir2
rm dir2/somefile
tar cpzf archive.tar.gz !ls:*

おすすめ記事