Shell学习笔记:<<EOF子命令

  在shell编程中,“EOF”通常与“<<”结合使用,“<<EOF”表示后续的输入作为子命令或子shell的输入,直到遇到“EOF”,再次返回到主调用shell,可将其理解为分界符(delimiter)。

  EOF是End of file的缩写,自定义终止符。

  既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:

交互式程序 << EOF
command1
command2
...
EOF
       ”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。
       "EOF"一般常和cat命令连用,通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号:
  • <:输入重定向
  • >:输出重定向
  • >>:输出重定向,进行追加,不会覆盖之前的内容
  • <<:标准输入来自命令行的一对分隔号的中间内容
cat << EOF
> 100
> 200
> 300
> EOF
cat >> filename << EOF
100
200
300
EOF

# cat filename
100
200
300

  注意:最后的”EOF“必须单独占一行。

  $a=<< “EOF” 的意思就是说:下一行开始,直到遇见“EOF”为止,所有的字符都按照指定的格式存入变量a中。

END 2018-08-15 10:01:56
posted @ 2018-08-15 10:02  Hider1214  阅读(4954)  评论(0编辑  收藏  举报