在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。

EOF只是一个分界符,当然也可以用abcde替换。
当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。
此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的字符串,只是一个起始和结束的标志罢了。

1,command<<EOF
(内容)
EOF
例如:

代码示例:
#!/bin/bash
#Filename:do.sh
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
sleep 5
su - oracle -c 
lsnrctl start

说明:
将“内容段”整个作为命令的输入。
用su命令读取整段命令,并逐行执行。

2,特殊用法:
: << COMMENTBLOCK
   shell脚本代码段
COMMENTBLOCK
用来注释整段脚本代码。 : 是shell中的空语句。

echo start
:<<COMMENTBLOCK
echo
echo "this is a test"
echo
COMMENTBLOCK
echo end

这段脚本执行时,中间部分不会被执行:

代码示例:
[root@newserver shell]# sh eof.sh
start
end

最新文章

  1. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十一)路径导航模块
  2. php使用内置的mcrypt_encrypt和mcrypt_decrypt进行字符串加密解密
  3. 【C#进阶系列】06 类型和成员基础
  4. [转载]C++命名规则
  5. 南阳理工ACM-OJ 分数加减法 最大公约数的使用
  6. Linux下安装nfs服务器
  7. SilkTest Q&amp;A 3
  8. Cocos2d-x 3.0final 终结者系列教程12-Vector&amp;amp;map&amp;amp;value
  9. xBIM WeXplorer xViewer的导航,相机、剖切、隐藏 等操作
  10. C语言函数2
  11. Docker控制组
  12. Java API使用
  13. 11款插件让你的Chrome成为全世界最好用的浏览器|Chrome插件推荐
  14. Get与Post方法的区别
  15. 构建第一个SpringBoot工程
  16. hdu1242 Rescue(BFS +优先队列 or BFS )
  17. Alpha版本冲刺(四)
  18. 最近maven开发中遇到的一些bug。
  19. Linux 添加普通用户到 sudoers 文件
  20. [Hive]HiveServer2配置

热门文章

  1. 删除Win10菜单中的幽灵菜单(ms-resource:AppName/Text )
  2. VMware与Centos系统安装之重置root密码
  3. git签名设置
  4. Interger对象不要用==进行比较
  5. PHP Help Guideds
  6. 6.Docker Compose 网络设置
  7. java - 虚拟机性能监控与故障处理工具
  8. 2019-08-22 纪中NOIP模拟A&amp;B组
  9. Java对MongoDB进行分组操作并统计各个分组的数量
  10. smarty文章字符截取