Переименование тысячи файлов с похожими именами

, затем и else не являются программами. Остальные части есть. Обратите внимание, что непосредственно после них нет ; ', но после команды, которой они предшествуют.

[...] является командой и требует ; , если за ней следует начало другой команды.

AFAIK, все управляющие структуры в Bash и , вероятно, большинство * nix-оболочек, одинаковы. Это инструкции для переводчика. С другой стороны, тест или условие использует программу / процесс, которые «выполняются» и являются командами. Поскольку , то является частью строки, которая ведет к команде echo , она должна быть отделена новой строкой от предыдущей команды [...] . Его не нужно отделять от команды, которую он контролирует, echo yes .

С юридической точки зрения, хотя это некрасиво и трудночитаемо, вы тоже можете это сделать.

if [ $VARIABLE == abcdef ]
then echo yes
else echo no
fi

Обратите внимание, что здесь нет необходимости в ; между элементами управления, даже если они не на своей линии.

Интересно, что вся управляющая структура ( if ... fi ) является командой оболочки, и вся структура должна заканчиваться новой строкой или ; . Последняя строка не может быть fi echo done , но должна быть fi; эхо сделано . То же, что и присвоение VARIABLE = 'abcdef' , является командой.

Несмотря на то, что все управляющие структуры являются командами, они все же не являются программами.

1
09.03.2019, 16:14
0 ответов

Теги

Похожие вопросы