UNIX: для чего они ======? - PullRequest
0 голосов
/ 10 мая 2018

Что такое ============= в приведенной ниже программе?Этот раздел нужен или это блок комментариев и его можно убрать?Я немного новичок в UNIX, поэтому я пытаюсь прочитать код, чтобы понять его, и не знаю, почему это так.Кроме того, что EOF ниже этого значения.Я также не уверен в значении этой строки.Кто-нибудь может объяснить, пожалуйста?Заранее спасибо

#!/bin/bash    

usage() {
    cat <<-EOF
    ========================================================
    Usage: $0

    Choose either y or n in "do you want to continue"

    Choose from option A - E in mainmenu to perform actions.
    ========================================================

    EOF
}

1 Ответ

0 голосов
/ 10 мая 2018

Этот вопрос «Как« cat << EOF »работает в bash?» </a> объясняет, как cat можно использовать для «здесь документов».

Этот вопрос на Как мне написать heredoc в файл в скрипте Bash? также содержит подробные ответы по конкретному использованию cat для этого и содержит следующий пример, который записывает содержимое в файл:

cat << EOF > /tmp/yourfilehere
These contents will be written to the file.
        This line is indented.
EOF

Из Расширенного руководства по написанию сценариев Bash на здесь-документах:

Здесь документ является блоком кода специального назначения. Он использует форму ввода / вывода перенаправление для подачи списка команд в интерактивную программу или команда, такая как ftp, cat или текстовый редактор ex.

В этом случае ======================================================== - это просто текстовое содержимое для отображения.

Глядя на ваш код, heredoc определяется в методе с именем usage, который вызывается из error_exit(), поэтому я хотел бы представить, что он отображает сообщение об использовании сценария пользователям, которые вводят неверно опции.

EOF - это «конец файла» - воспринимайте его как начало и конец содержимого heredoc.

В ответ на ваш вопрос, можно ли вынуть ======================================================== - да, может. Все, что произойдет, это то, что он больше не будет отображаться пользователю. Однако не удаляйте EOF!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...