Linux shell:cat << EOF

1 用途

从标准输入(stdin) 读取一段文本,遇到 "EOF" 就停止读取,然后将文本输出到标准输出(stdout) 中。

2 语法

cat << EOF
文本信息
EOF

关键语法说明:

  • <<:Linux 中的 Here Document 格式语法开始标识符;
  • EOF:一个标识符,标识文本信息的开始和结束,可以是任意自定义字符,比如 begin,data 等
  • 文本信息:用户(你)想要显示在终端的内容。

3 '<< EOF' 和 '<<- EOF' 区别

If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter.  

中文含义就是如果重定向操作符是 <<-,那么就忽略每行文本信息和结束标识符(比如上面的 EOF)中的前导制表符(tab)

#!/bin/sh

#line 1、2、3,EOF,data 1、2、3 前面为 tab,不是空格。
cat <<- EOF
        line 1
        line 2
        line 3
        EOF

cat << DATA
        data 1
        data 2
        data 3
DATA

执行结果:

图片

你看,使用 '<<- ' 输出的内容会忽略每行前面的 tab

4. 延伸

如果想从终端中输入多行文本到文件中,应当如何做呢?

cat > file << EOF
information 1
information 1
information 1
...
EOF

猜你喜欢

转载自blog.csdn.net/ygq13572549874/article/details/131819790
今日推荐