Apple также сообщает, что macOS Catalina и более новые версии будут использовать Zsh в качестве интерактивной оболочки и оболочки входа по умолчанию. Zsh в значительной мере совместима с bash, но некоторые примеры в этой книге потребуют изменений.
нных выше вариантах будут
Кстати, если эффективность имеет большое значение, объявите переменную цикла как целочисленную, добавив инструкцию declare -i i в начало сценария, это позволит избежать ресурсоемких преобразований из строки в число и обратно.
Также источником значений для цикла for могут быть результаты выполнения команд — отдельных или их конвейеров:
for arg in $(some cmd or other | sort -u)
Вот еще несколько примеров:
for arg in $(cat /some/file)
for arg in $(< /some/file) # Faster than shelling out to cat
for pic in $(find . -name '*.jpg')
for val in $(find . -type d | LC_ALL=C sort)
# Пример 2
$ echo 1 || echo 2 && echo 3
1
3
$
Обратите внимание, что крайняя левая команда выполняется всегда, независимо от следующего за ней оператора: порядок вычислений определяется не приоритетом операторов, а их последовательностью.
Итак, две команды, разделенные символами &&, похожи на оператор if и его ветку then; две команды, разделенные символами ||, похожи на оператор if и его ветку else.
поэтому возникает вопрос: когда использовать их, а когда сокращенные конструкции? Ответ: все зависит от удобочитаемости.
Мы рекомендуем использовать дополнительную точку с запятой, не забывая о пробеле между ней и закрывающей фигурной скобкой.
Мы советуем по возможности всегда использовать двойные квадратные скобки.