Questão Comandos da cadeia de peixes via `&&` ou `||`


Em Bash / ZSH e outras shells, estou acostumado a usar && e ||.

Existe algum equivalente em Fish?


84


origem


Esta sintaxe agora é suportada no branch master e será lançada no Fish 3.0 (github.com/fish-shell/fish-shell/commit/…) - Elliott Beach


Respostas:


Fish não tem uma sintaxe especial para um AND lógico (&&) ou um OR lógico (||).

Em vez disso, você pode usar os comandos and e or, que verifica o status de saída do comando anterior e age de acordo:

command1
and command2
command1
or command2

Além disso - assim como no bash - você pode usar um ponto-e-vírgula ; para executar dois comandos, um após o outro:

command1 ; command2

Isso permite usar uma sintaxe mais familiar:

command1 ;and command2
command1 ;or command2

Vejo http://fishshell.com/docs/current/tutorial.html#tut_combiners


115



Há um problema no github aberto para adicionar suporte a esta sintaxe: && não funciona · Edição # 150 · fish-shell / fish-shell - aboy021
This allows using a more familiar syntax: é muito subjetivo - Petr Peller
;and é menos legível do que && como o ponto-e-vírgula sugere uma operação logicamente separada. É visualmente chocante. - Elliott Beach
@Elliott Eu concordo, mas Fish não lhe dá uma escolha. - Dennis
note que em shells de peixe e bourne, os operadores AND e OR têm a mesma ordem, ao contrário das linguagens baseadas em C: unix.stackexchange.com/a/88851/50703 - balupton