终于可以优雅的捕获 shell heredoc 内容了
来源:互联网 发布:软件测试的艺术 pdf 编辑:程序博客网 时间:2024/05/29 12:44
Shell代码
eval 'var=`cat`' <<"+EOF"
终于可以用这种方式捕获 heredoc 的内容了
我太高兴了!
原先那种方式:
var=`cat << "+EOF2"
heredoc content
EOF2
`
不光麻烦,而且会出问题,如果正文中出现一个未被引号引起来的`就挂了
用 $(cat ...) 的方式也一样不好
+EOF
echo "$var"
终于可以用这种方式捕获 heredoc 的内容了
我太高兴了!
原先那种方式:
var=`cat << "+EOF2"
heredoc content
EOF2
`
不光麻烦,而且会出问题,如果正文中出现一个未被引号引起来的`就挂了
用 $(cat ...) 的方式也一样不好
+EOF
echo "$var"
旧的那篇:shell heredoc 微妙之处
这种写法主要解决的问题是:避免了嵌套结构,于是 heredoc 的语法解析细节就和外层的shell调用(`..`或者$(..))毫不相干了。
这种写法为什么可以正确地工作?因为eval引入了一个子结构,这样eval ... 作为一个整体来接受输入,不管它是 heredoc 还是别的什么,比如也可以是一个文件重定向(eval 'var=`cat`' < file)。
因为 shell 的管道语法限制了数据流的方向,只能从左向右,而 heredoc 的数据流却是从右向左,于是,事情就变得有点复杂了( eval 'var=`cat`' ... 算得上复杂吗?)。
- 终于可以优雅的捕获 shell heredoc 内容了
- CSDN 的 Blog 终于可以用了
- 终于可以去好好的学习了
- 终于可以踏踏实实的做开发了
- 终于可以发表自己的文章了!
- 宿舍的Internet终于可以用了
- 我的Debian终于可以上网了
- 终于可以用自己的电脑了
- PSP3000终于可以放心的关机了!
- 终于可以舒服的看电子书了
- 终于可以唱歌了
- 终于可以写日记了~~~~
- 终于可以上班了。
- 终于可以验收了
- 终于可以置顶了!
- 终于可以回国了
- 终于可以结束了
- 终于可以开始了
- windows 快捷键大全
- 烦了
- Photoshop网页设计教程网站推荐
- 好文共享:EXTJS与后台(J2EE)实战开发经验与心得总结
- jquery对select的常见操作
- 终于可以优雅的捕获 shell heredoc 内容了
- SQL语句中引号的使用
- 鸡肋MP3内存容量升级记
- 也谈编程等宽字体
- 切莫病急乱投医:企业选择信息化外包指南(3)
- 切莫病急乱投医:企业选择信息化外包指南(4)
- 一些经典的教程
- QQ机器人(转贴)
- java序列化