查看“Here 脚本 Here Scripts”的源代码
←
Here 脚本 Here Scripts
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==<center>Here 脚本 Here Scripts</center>== *[http://www.linuxcommand.org/wss0030.php 原文链接 : http://www.linuxcommand.org/wss0030.php] *[http://mlwiki.maihaohui.com/index.php/Linux%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B9%8B%E8%8F%9C%E9%B8%9F%E5%AD%A6%E4%B9%A0%E7%AF%87 返回目录] ==='''Here Scripts'''=== 在后续课程中,我们将构建一个有用的程序. 这个程序将生成一个 HTML 文档 用于显示你的系统信息.在如何讲解shell编程问题上,我苦思良久,我接下来要采用的讲解方式,与我所见过的大多数的讲解方式有很大差异.大多数的讲解方式倾向于系统的对待编程的诸项功能,并假设学习者有使用其它编程语言的经验. 虽然我不敢肯定你已经了解如何编程,但我意识到今天许多人了解到如果制作 HTML网页,所以我们的第一个程序将用来制作一个网页. 在我们制作网页的过程中,我们将逐步展示我们手头上有的用于解决难题的工具. ===用脚本制作一个HTML文件(Writing an HTML file with a script)=== 正如你所知,一个完整格式的HTML文件将包含以下内容: <div style="padding: 5px; background:#e0e0e0"> <HTML> <HEAD> <TITLE> 网页标题 </TITLE> </HEAD> <BODY> 你的网页内容. </BODY> </HTML> </div> 现在,利用我们所掌握的知识,我们能够编写一个脚本用来生成以上内容: <div style="padding: 5px; background:#e0e0e0"> #!/bin/bash # make_page - A script to produce an HTML file echo "<HTML>" echo "<HEAD>" echo " <TITLE>" echo " The title of your page" echo " </TITLE>" echo "</HEAD>" echo "" echo "<BODY>" echo " Your page content goes here." echo "</BODY>" echo "</HTML>" </div> 这个脚本的使用格式如下: <div style="padding: 5px; color:#33ff33; background:#000000"> [me@linuxbox me]$ <font color="#FFFFFF">$ make_page > page.html</font> </div> 有一种说法,最伟大的程序员同样是最懒的家伙.他们编写程序来节省他们的工作时间.同样,当聪明的程序员编写程序时,他们也争取减少他们的击键次数. 同理,我们对上述脚本的第一项改进便是通过here脚本来替换重复使用的echo命令: <div style="padding: 5px; background:#e0e0e0"> #!/bin/bash # make_page - A script to produce an HTML file cat << _EOF_ <HTML> <HEAD> <TITLE> The title of your page </TITLE> </HEAD> <BODY> Your page content goes here. </BODY> </HTML> _EOF_ </div> here脚本(有时被称为here文档)是输入输出重定向的一种附加格式程序.通过它向shell的标准输入提供内容.在上面的脚本中,cat命令将从我们脚本中获取的输入数据作为shell的标准输入. 一个here脚本的格式如下: <div style="padding: 5px; background:#e0e0e0"> command << token 用作命令标准输入的内容 token </div> ''token'' 可以用任意字符串来代替. 我使用 "_EOF_" (EOF为"End Of File"的缩写) 因为这是一种惯例,但你可以使用任意字符串来替代, 但该字符串不能与bash内置的保留字符串相冲突. 位于脚本末尾的token必须与脚本开始处的token完全一致, 否则脚本的其它内容将被shell视为更多的命令标准输入来解释. 这有一个惯用的技巧来改进here脚本.通常你想通过缩进脚本内容来提高脚本的可读性.你可以将脚本编辑成以下形式: <div style="padding: 5px; background:#e0e0e0"> #!/bin/bash # make_page - A script to produce an HTML file cat <<- _EOF_ <HTML> <HEAD> <TITLE> The title of your page </TITLE> </HEAD> <BODY> Your page content goes here. </BODY> </HTML> _EOF_ </div> 将"<<"替换为 "<<-" 以使bash忽视here脚本中的打头的空格.这样,从cat命令生成的标准输出就不会在开始处含有空格或者tab符号. O.k., 让我们继续. 我们将缩回我们的页面来显示一些信息: <div style="padding: 5px; background:#e0e0e0"> #!/bin/bash # make_page - A script to produce an HTML file cat <<- _EOF_ <HTML> <HEAD> <TITLE> My System Information </TITLE> </HEAD> <BODY> My System Information </BODY> </HTML> _EOF_ </div> 在下一节中,我们将继续完善here脚本来显示系统的真实信息. ---- <big><center>要知后事如何,且看:《[[替换Substitutions - Part 1 ]]》 </center></big> ---- © 2000-2007, William Shotts, Jr. Verbatim copying and distribution of this entire article is permitted in any medium, provided this copyright notice is preserved. Linux® is a registered trademark of Linus Torvalds. ----
返回至“
Here 脚本 Here Scripts
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息