Linux History Expansion は、zsh で修飾子として使用されないコロンをエスケープします。

Linux History Expansion は、zsh で修飾子として使用されないコロンをエスケープします。

次のコマンドがあります。

echo test

次に、zshで履歴拡張を含む他のコマンドの最後のパラメータを使用したいと思います。私の別のコマンドには前にコロン「:」があるので、私が望む結果は次のようになります。

echo test:someothertext

次のようにLinux bashの履歴拡張を試してみました。

echo !!$:someothertext

:s は修飾子として解釈され、次のような結果が得られます。

echo testsomeothertext

したがって、必須コロンがありません。

実際のシナリオはより便利で、gitコマンド(git showbranch:file)を使用しますが、このエコサンプルはすべてのシステムで再現するのが簡単です。

コロンのエスケープ方法として「\」を試しましたが、うまくいきませんでした(「\」も結果に印刷されます)。 2番目のコロンが表示されないように、有効な修飾子を試してみました。解釈されましたが、効果は機能しません。

だから私はこれを試しました:

echo !!$:p:someothertext

結果:

zsh: substitution failed

答え1

良くありませんが、bashこの場合は機能します。

echo !!$\
:someothertext

答え2

いつでも次のものを使用できます。

echo !!$':moretext'

または:

echo !!$'':moretext

または:

echo $_:moretext

関連情報