Пока Loop выполняет блок кода (заключенный в do ... done ), когда условие равно true , и продолжает его выполнять до тех пор, пока условие не станет ложь . Как только условие становится false , цикл while завершается.
До тех пор, пока Loop не выполнит блок кода (заключенный в do ... done ), когда условие false , и продолжайте его выполнять до тех пор, пока условие не станет правда . Как только условие становится true , цикл до прекращается.
COUNTER=20
while [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
В самом первом случае условие, упомянутое в while, то есть [$ COUNTER -lt 10] , имеет значение false, поэтому блок кода внутри цикла while не будет беги вообще.