Цикл for
, используемый для перебора аргументов, завершается и переходит к своему оператору done
, когда его условие выполнено (конец списка). Когда сценарий достигает цикла for
без аргументов, начало списка совпадает с концом, а условие цикла ложно.
В исходном примере команды внутри цикла дали бы неверный результат при пустой строке. Если бы переменная "param" была пустой, первый регистр [-d ./$param]
соответствовал бы текущему каталогу ./
раньше, и сценарий достиг проверки наличия пустой строки [-z "$ param"]
.