Я давно використовую Bash, але, здається, все одно щось сумую. Будь ласка, врахуйте цей код:
function surprise {
true && {
echo 'Expected';
false;
} || {
echo 'Unexpected';
}
}
surprise;
що є скороченою демонстрацією моєї реальної проблеми та результатів:
Expected
Unexpected
До цього часу я думав, що те, що повертається "Очікуваний" блок, не впливає ||перед блоком "Неочікуваний", але, схоже, ||перевіряється не на вихід trueкоманди, а насправді на falseкоманду всередині дужок.
Може хтось, будь ласка, пояснить, що насправді щойно сталося? Спасибі заздалегідь.
&&і||більше подобалосьif-then-else, але тепер я це отримую - дякую!