Size: a a a

2021 June 25

Лс

Лень с Самосознанием... in pro.bash
Кривой но корректный...
источник

Лс

Лень с Самосознанием... in pro.bash
И всё равно не рабочий 🤣 (slurp не хочет вовремя стартовать, ну да не об этом)
источник

F

Fljúgandi Kettlingur... in pro.bash
слушай, если есть проблемы - не пиши в одну строку.
foo
retval=$?
if [ $retval -eq 0 ]; then bar; else
echo "foo returned $retval"
sl=$(slurp)
baz $sl
fi

да, больше кода, зато легче сопровождать и труднее накосячить в логике
источник

Лс

Лень с Самосознанием... in pro.bash
shellcheck, кстати, ругнётся)
Скажет что запись
if foo; then
лучше
источник

F

Fljúgandi Kettlingur... in pro.bash
ну и срать ему на голову
источник

Лс

Лень с Самосознанием... in pro.bash
Я то знаю и использую, просто неожиданный нюанс
источник

F

Fljúgandi Kettlingur... in pro.bash
А еще обрати внимание, что у [ есть свой код возврата :)

$ false
$ if [ $? -eq 0 ]; then echo XXX; fi
$ echo $?
0
источник

Лс

Лень с Самосознанием... in pro.bash
Про это я узнал ещё тонну времени назад и всегда восхищался)
источник

F

Fljúgandi Kettlingur... in pro.bash
$ false
$ if [[ $? -eq 0 ]]; then echo XXX; fi
$ if [[ $? -eq 0 ]]; then echo XXX; fi
XXX
источник

F

Fljúgandi Kettlingur... in pro.bash
он прав, но короткую запись труднее сопровождать и в ней легче напортачить.
Лучшее враг хорошего ящитаю
источник

Лс

Лень с Самосознанием... in pro.bash
Вот тоже пример того о чём я толкую - условие не выполнилось, test вернул 1, но невыполненная команда почеу-то превратила её в 0
источник

Лс

Лень с Самосознанием... in pro.bash
А вот так работает :D
источник

Лс

Лень с Самосознанием... in pro.bash
➜ false
~ ➜ [ $? -eq 0 ] && echo yes
~ ➜ [ $? -eq 0 ] && echo yes
~ ➜ [ $? -eq 0 ] && echo yes
~ ➜
источник

F

Fljúgandi Kettlingur... in pro.bash
нет. false вернул 1
if [ $? -eq 0 ] проверил, успешно не выполнил блок по "если истина", успешно выполнил пустой блок по "если ложь", вернул 0, все довольны
источник

F

Fljúgandi Kettlingur... in pro.bash
да, у тебя тут ифа нету
источник

Лс

Лень с Самосознанием... in pro.bash
Так наоборот же. У if первым идёт блок "если да"
источник

F

Fljúgandi Kettlingur... in pro.bash
так он его не выполнил, потому что условие вернуло 1
источник

F

Fljúgandi Kettlingur... in pro.bash
Вот еще без ифа:
$ false
$ [ $? -eq 0 ] && echo $? || echo _$?_
_1_
$ [ $? -eq 0 ] && echo $? || echo _$?_
0
$ false
$ [ $? -eq 0 ] && echo $?
$ [ $? -eq 0 ] && echo $?
$ echo $?
1
источник

🌚

🌚 YupiRex in pro.bash
condition1 && {
    ...
} || {  condition2 &&
    ...
}
источник

Лс

Лень с Самосознанием... in pro.bash
Я про elseif
источник