!#:3はシェルコマンドで何を意味しますか?

!#:3はシェルコマンドで何を意味しますか?

ackインストールガイドでは、次のコマンドを使用してackスクリプトをインストールすることをお勧めします。

curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3 

!#:3最後は一種の逆参照のようですが、それはどういう意味ですか? zshに同等のものはありますか? Googleは役に立ちませんでした。

ベストアンサー1

これはbashによって拡張された特別な構文です。 zshでも動作します。

Bashのマニュアルページ(Historical Extensionsセクション)によると、モードは次のように拡張されます。

  • これイベントインジケータ !#これまでに入力したコマンドライン全体を意味します。curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755
  • :間に分割イベントインジケータ(この場合は全行)と単語インジケーター(サブセクション選択)
  • これ単語インジケーター 3それは選んだ第三単語/引数(単語数は0から始まり)、この場合は~/bin/ack

最後のコマンドライン(通常は実行前に表示されます)は次のとおりです curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 ~/bin/ack

詳細については、次を参照してください。バッシュマニュアルまたは非常に似ているかzsh マニュアル

おすすめ記事