Size: a a a

2020 September 09

n

nod in pro.bash
łibfitź.r13.a
Подскажите, валидна такая конструкция?
while ! (command); do ...; done
Или надо делать каноничнее, типа
while [ ! $(command) ]; do ...; done
?
() - это сабшелл
[] - это test . while test ! $(command)
$() - это сабшелл и вывод значения
; - следующая команда без ожидания вывода. Перевод строки приравнивается к ; в скрипте
info bash
источник

l

linxon in pro.bash
łibfitź.r13.a
Подскажите, валидна такая конструкция?
while ! (command); do ...; done
Или надо делать каноничнее, типа
while [ ! $(command) ]; do ...; done
?
для while 1 - это true , а 0 - false
источник

l

linxon in pro.bash
можно написать

while [ 1 ]; do..
while true; do..

получится бесконечный цикл*
источник

l

linxon in pro.bash
будет выполнять до тех пор , пока в условиях стоит true Ж)
источник

️ ️️ in pro.bash
linxon
для while 1 - это true , а 0 - false
Language:
bash


Source:
i=0
while [ 0 ]; do
 echo "$((i++))"
 [ "${i}" -gt 5 ] && break
done


Result:
0
1
2
3
4
5
источник

l

linxon in pro.bash
️ ️️
Language:
bash


Source:
i=0
while [ 0 ]; do
 echo "$((i++))"
 [ "${i}" -gt 5 ] && break
done


Result:
0
1
2
3
4
5
вау
источник

l

linxon in pro.bash
и как это понимать? :))
источник

️ ️️ in pro.bash
что в sh нету типов
источник

l

linxon in pro.bash
понятно дело, что нет
источник

️ ️️ in pro.bash
ну так 0 это тоже самое что и "0"
источник

l

linxon in pro.bash
есть пусто и есть данные
источник

l

linxon in pro.bash
есть 0 и 1
источник

l

linxon in pro.bash
теперь я в замешательстве
источник

️ ️️ in pro.bash
linxon
есть 0 и 1
пусто это: ""
а вот есть данные: "0"
источник

EK

Evgeny Kuchkov in pro.bash
Имхо плохая практика работать с интами в [[ или [
источник

EK

Evgeny Kuchkov in pro.bash
Я предпочитаю (( i > 5 )) && break
источник

EK

Evgeny Kuchkov in pro.bash
Более наглядно
источник

️ ️️ in pro.bash
Language:
bash


Source:
i=0
while (( 0 )); do
 echo a
done

i=0
while (( 1 )); do
 echo b
 [ "$((i++))" -gt 5 ] && break
done


Result:
b
b
b
b
b
b
b
источник

l

linxon in pro.bash
️ ️️
пусто это: ""
а вот есть данные: "0"
ну это строки, а как получается [ 0 ] = истина я хз
источник

l

linxon in pro.bash
тест по идее должен вернуть false
источник