То же самое в короткой строке:
read -p 'Enter a number: ' num
(( num > 5 )) && echo lol || echo fail
может быть сжато:
read -p 'Enter a number: ' num;((num>5))&&echo lol||echo fail
Этот синтаксис будет работать при успешном выполнении первой команды!
read -p 'Enter a number: ' num
((num > 5)) && {
echo lol
/bin/wrongcommand
:
} || echo fail
Может выдать:
lol
bash: /bin/wrongcommand: No such file or directory
Но нет fail
, поскольку :
(это псевдоним для true
) всегда будет успешным.
Конечно, вы можете группировать команду для fail :
read -p 'Enter a number: ' num
((num > 5)) && {
echo lol
/bin/wrongcommand
:
} || {
echo fail
other command
}
Может быть написано:
read -p 'Enter a number: ' num;((num>5))&&{ echo lol;/bin/wrongcommand;:;}||{ echo fail;other command;}
Вы можете группировать команды между {
и ;}
(позаботьтесь о пробеле после первых {
!)
Enter a number: 4
fail
bash: other: command not found
Enter a number: 7
lol
bash: /bin/wrongcommand: No such file or directory