antes de começar, estou ciente de que esse pode ser um problema que deve ser aberto no git-hub, mas;
a. é menor
b. a funcionalidade da barra invertida já foi descrita por um problema fechado anteriormente, mas não o espaço em branco (veja aqui )
c. não consigo abrir problemas no git-hub, sendo um novo usuário
d. pode ajudar os recém-chegados por meio da indexação do Google.
Sinta-se à vontade para criar um problema no git-hub em meu nome.
Considere o seguinte código;
# Our fish :)
set fishies \
">('>" \
"><=*>" \
">-<==*>" \
">==(--v-*);->" \
"><>" \
"><(((º>" \
">-<===*>" \
">(̠̄:̠̄ >" \
">><((( ◉ >"
# Usage ; set fish (getfish) && echo $fish
function getfish
# Set our fish to a random item from the "fishies" list
set -l fish $fishies[(random 1 (count $fishies))]
# Return our fish to the STDOUT
echo $fish
end
Isso funciona bem. No entanto, se introduzirmos um espaço em branco após qualquer barra invertida ("\__" (indicado pelo sublinhado (_))) a linha abaixo dela não será passada para o set fishes
comando.
Esse é um comportamento correto e há alguma documentação sobre como a barra invertida funciona, já que só descobri isso por meio de ajustes?
Para reiterar, alguém pode me explicar por que esse comportamento ocorre?
O máximo que encontrei (acho) em referência à barra invertida é o seguinte código sobre o problema do git-hub mencionado anteriormente (mas não o entendi completamente);
It (the usage of a backslash to form a new-line) has been special cased in tokenizer.cpp:539 :
if ((*(tok->buff) == L'\\') &&(*(tok->buff+1) == L'\n'))
{
tok->last_pos = tok->buff - tok->orig_buff;
tok->buff+=2;
tok->last_type = TOK_END;
return;
}
Peço desculpas se isso for ingênuo/mal escrito, sou um usuário novo e inativo. Pensei em dar meus 2 centavos e, espero, ajudar outros novatos que estejam enfrentando o mesmo problema. É um ótimo pequeno recurso e uma ferramenta exuberante. Seria uma pena deixar esse comportamento sem documentação, pois ele é útil ao escrever comandos/strings longos.