UNIX:这些是什么====== for?

时间:2018-05-10 13:42:12

标签: bash unix

以下程序中有哪些=============?该部分是需要还是注释块,可以取出?我对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 :(得分:3)

此问题"How does “cat << EOF” work in bash?"解释了cat如何用于“此处的文档”。

How can I write a heredoc to a file in Bash script? 上的这个问题也有详细的答案,专门针对此使用cat,并包含将内容写入文件的示例:

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

来自here-docs的Advanced Bash-Scripting Guide部分:

  

此处的文档是一个专用代码块。它使用一种I / O形式   重定向以将命令列表提供给交互式程序或   命令,例如ftp,cat或ex文本编辑器。

在这种情况下,========================================================只是要显示的文本内容。

查看你的代码,heredoc是在一个名为usage的方法中定义的,似乎是从error_exit()调用的,所以我想在那里显示一条关于脚本使用的消息输入错误选项的用户。

EOF是“文件结尾” - 将其视为heredoc内容的开头和结尾。

回答你的问题是否可以取出======================================================== - 是的,它可以。所有将要发生的是它将不再显示给用户。 但是,请勿删除EOF