回答:
で!*
、!
は履歴展開プレフィックスであり*
、すべての引数を意味する単語指定子です。一般的な構文はbang-line-colon-column(!
line :
column)として記憶できます。多くのショートカットがあります。デフォルトの行は前の行、デフォルトの列指定子は「すべて」です。列指定子が非数値の場合はコロンを省略できます(ただし、!3
行3を意味します)。あなたは使用することができ!:0
、コマンド名を参照するために!:1
、!:2
など、連続した引数を参照するために!:$
、最後の言葉のために!:*
すべての引数のために、そしてより多くの。
参照してくださいマイケルMrozekすることで、この記事ではUnixのスタック交換を。
!1:1
が最初の行の最初の引数を指すと仮定しますか?
個人的には、この「感嘆符付きの拡張」機能が本当に嫌いです。これはecho "Hello World!"
、インタラクティブシェルで試してみても邪魔になります(非インタラクティブモードで実行されると想定するスクリプトのソースはまったく機能しません)。
そこで、set +o histexpand
次の方法で引数の設定と呼び出しを開始します。
Esc, 1, Esc, Ctrl-Y => Insert first argument of previous command.
Escトリックは、メタキーがないためです。
echo 'Hello, orld!'
。二重引用符ではなく一重引用符に注意してください。
!:1
、!:2
。コロンを含むバージョンを使用した後、機能しました。