次のコマンドがあります。
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