Isso é zsh
, man, não fish
.
Em zsh
, como em todos os shell semelhantes a Bourne (e também csh
), aspas simples são citações strongs, não há como escapar (exceto usando as opções rcquotes
como sugeridas por @JdeBP , em que zsh
emula rc
quotes¹). Você não pode ter uma aspa simples dentro de uma string entre aspas simples, você precisa primeiro fechar a única string entre aspas e digitar a aspa simples literal usando outro mecanismo de aspas (como \
ou "
):
alias shopt='echo "You'\''re looking for setopt. This is Z shell, man, not Bash."'
Ou:
alias shopt='echo "You'"'"'re looking for setopt. This is Z shell, man, not Bash."'
Embora você também possa fazer:
alias shopt="echo \"You're looking for setopt. This is Z shell, man, not Bash.\""
( "..."
são mais fracas citações dentro das quais vários caracteres, incluindo \
(aqui usados para escapar do "
incorporado) ainda são especiais).
Ou:
alias shopt=$'echo "You\'re looking for setopt. This is Z shell, man, not Bash."'
( $'...'
é outro tipo de aspas do ksh93, onde o '
pode ser escapado com \'
).
¹ Em rc
, o shell do Plan9, com uma versão para unix-likes também disponível, aspas simples são o único mecanismo de cotação (barras invertidas e aspas duplas são comuns caracteres lá), a única maneira de inserir um aspas simples literal com ''
dentro de aspas simples, portanto, com zsh -o rcquotes
, você poderia fazer:
alias shopt='echo "You''re looking for setopt. This is Z shell, man, not Bash."'