Ответ 1
Два других подхода:
Подходите к одному:
if begin false; or true; end
echo y
else
echo n
end
Подходите к двум:
false; or true
and echo y
or echo n
Что я хочу сделать, используя bash:
> if true; then echo y; else echo n; fi
y
> if false; then echo y; else echo n; fi
n
> if false || true; then echo y; else echo n; fi
y
Теперь попробуйте с рыбой:
> if true; echo y; else; echo n; end
y
> if false; echo y; else; echo n; end
n
# Here 'or true' are just two arguments for false
> if false or true; echo y; else; echo n; end
n
# Here 'or true;' is a command inside the if
> if false; or true; echo y; else; echo n; end
n
# Can't use command substitution instead of a command
> if (false; or true); echo y; else; echo n; end
fish: Illegal command name "(false; or true)"
Как я могу иметь два условия в if
?
Два других подхода:
Подходите к одному:
if begin false; or true; end
echo y
else
echo n
end
Подходите к двум:
false; or true
and echo y
or echo n
Этот способ работает, но это уродливый взлом:
> if test (true; and echo y); echo y; else; echo n; end
y
> if test (false; and echo y); echo y; else; echo n; end
n
> if test (false; or true; and echo y); echo y; else; echo n; end
y
Я искренне надеюсь на лучшие ответы.