Linux History Expansion escapando de dois pontos que não é um modificador (em zsh)

1

Eu tenho um comando como:

echo test

Agora eu quero usar o último parâmetro dentro de outro comando com extensão de histórico dentro de um zsh. Meu outro comando tem um cólon ":" inicial, então eu quero um resultado de:

echo test:someothertext

E eu tento com extensão de histórico do bash do linux como o seguinte:

echo !!$:someothertext

O: s será interpretado como um modificador e o resultado é:

echo testsomeothertext

Então, o cólon necessário está faltando.

O cenário real é mais útil e usa comandos git (git show branch: file), mas esse exemplo de eco é mais fácil de reproduzir em cada sistema.

Eu já tentei usar "\" como um escape para os dois pontos que não funcionam ("\" também é impresso no resultado) E eu tentei usar um modificador válido para que o segundo cólon não fosse interpretado, mas também não funcionaria.

Então eu tentei isso:

echo !!$:p:someothertext

que resulta em:

zsh: substitution failed
    
por snap 10.01.2018 / 09:46

2 respostas

0

Não muito legal, mas em bash isso funciona:

echo !!$\
:someothertext
    
por 10.01.2018 / 09:53
0

Você sempre pode usar:

echo !!$':moretext'

Ou:

echo !!$'':moretext

Ou:

echo $_:moretext
    
por 11.01.2018 / 09:37