<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.magiclinux.org/index.php?action=history&amp;feed=atom&amp;title=Here_%E8%84%9A%E6%9C%AC_Here_Scripts</id>
	<title>Here 脚本 Here Scripts - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.magiclinux.org/index.php?action=history&amp;feed=atom&amp;title=Here_%E8%84%9A%E6%9C%AC_Here_Scripts"/>
	<link rel="alternate" type="text/html" href="https://wiki.magiclinux.org/index.php?title=Here_%E8%84%9A%E6%9C%AC_Here_Scripts&amp;action=history"/>
	<updated>2026-08-11T11:28:50Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.magiclinux.org/index.php?title=Here_%E8%84%9A%E6%9C%AC_Here_Scripts&amp;diff=81&amp;oldid=prev</id>
		<title>Sejishikong：创建页面，内容为“==&lt;center&gt;Here 脚本 Here Scripts&lt;/center&gt;==  *[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 返回目录]  ===&#039;&#039;&#039;Here Scripts&#039;&#039;&#039;===   在后续课程中,我们将构建一个有用的程序. 这个程序将生成一个 HTML 文档 用于显示你的系统信息.在如何讲解shell编…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.magiclinux.org/index.php?title=Here_%E8%84%9A%E6%9C%AC_Here_Scripts&amp;diff=81&amp;oldid=prev"/>
		<updated>2021-12-21T03:14:27Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“==&amp;lt;center&amp;gt;Here 脚本 Here Scripts&amp;lt;/center&amp;gt;==  *[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 返回目录]  ===&amp;#039;&amp;#039;&amp;#039;Here Scripts&amp;#039;&amp;#039;&amp;#039;===   在后续课程中,我们将构建一个有用的程序. 这个程序将生成一个 HTML 文档 用于显示你的系统信息.在如何讲解shell编…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==&amp;lt;center&amp;gt;Here 脚本 Here Scripts&amp;lt;/center&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
*[http://www.linuxcommand.org/wss0030.php 原文链接 : http://www.linuxcommand.org/wss0030.php]&lt;br /&gt;
*[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 返回目录]&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Here Scripts&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
在后续课程中,我们将构建一个有用的程序. 这个程序将生成一个 HTML 文档 用于显示你的系统信息.在如何讲解shell编程问题上,我苦思良久,我接下来要采用的讲解方式,与我所见过的大多数的讲解方式有很大差异.大多数的讲解方式倾向于系统的对待编程的诸项功能,并假设学习者有使用其它编程语言的经验. 虽然我不敢肯定你已经了解如何编程,但我意识到今天许多人了解到如果制作 HTML网页,所以我们的第一个程序将用来制作一个网页. 在我们制作网页的过程中,我们将逐步展示我们手头上有的用于解决难题的工具.&lt;br /&gt;
&lt;br /&gt;
===用脚本制作一个HTML文件(Writing an HTML file with a script)===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
正如你所知,一个完整格式的HTML文件将包含以下内容:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;HTML&amp;gt;&lt;br /&gt;
 &amp;lt;HEAD&amp;gt;&lt;br /&gt;
     &amp;lt;TITLE&amp;gt;&lt;br /&gt;
     网页标题&lt;br /&gt;
     &amp;lt;/TITLE&amp;gt;&lt;br /&gt;
 &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
 &amp;lt;BODY&amp;gt;&lt;br /&gt;
     你的网页内容.&lt;br /&gt;
 &amp;lt;/BODY&amp;gt;&lt;br /&gt;
 &amp;lt;/HTML&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
现在,利用我们所掌握的知识,我们能够编写一个脚本用来生成以上内容:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # make_page - A script to produce an HTML file&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;&amp;lt;HTML&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;lt;HEAD&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;  &amp;lt;TITLE&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;  The title of your page&amp;quot;&lt;br /&gt;
 echo &amp;quot;  &amp;lt;/TITLE&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;lt;/HEAD&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;lt;BODY&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;  Your page content goes here.&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;lt;/BODY&amp;gt;&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;lt;/HTML&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这个脚本的使用格式如下:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; color:#33ff33; background:#000000&amp;quot;&amp;gt; [me@linuxbox me]$ &amp;lt;font color=&amp;quot;#FFFFFF&amp;quot;&amp;gt;$ make_page &amp;gt; page.html&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
有一种说法,最伟大的程序员同样是最懒的家伙.他们编写程序来节省他们的工作时间.同样,当聪明的程序员编写程序时,他们也争取减少他们的击键次数.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
同理,我们对上述脚本的第一项改进便是通过here脚本来替换重复使用的echo命令: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # make_page - A script to produce an HTML file&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt; _EOF_&lt;br /&gt;
 &amp;lt;HTML&amp;gt;&lt;br /&gt;
 &amp;lt;HEAD&amp;gt;&lt;br /&gt;
     &amp;lt;TITLE&amp;gt;&lt;br /&gt;
     The title of your page&lt;br /&gt;
     &amp;lt;/TITLE&amp;gt;&lt;br /&gt;
 &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;BODY&amp;gt;&lt;br /&gt;
     Your page content goes here.&lt;br /&gt;
 &amp;lt;/BODY&amp;gt;&lt;br /&gt;
 &amp;lt;/HTML&amp;gt;&lt;br /&gt;
 _EOF_&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
here脚本(有时被称为here文档)是输入输出重定向的一种附加格式程序.通过它向shell的标准输入提供内容.在上面的脚本中,cat命令将从我们脚本中获取的输入数据作为shell的标准输入.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
一个here脚本的格式如下:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 command &amp;lt;&amp;lt; token&lt;br /&gt;
 用作命令标准输入的内容&lt;br /&gt;
 token&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;token&amp;#039;&amp;#039; 可以用任意字符串来代替. 我使用 &amp;quot;_EOF_&amp;quot; (EOF为&amp;quot;End Of File&amp;quot;的缩写) 因为这是一种惯例,但你可以使用任意字符串来替代, 但该字符串不能与bash内置的保留字符串相冲突. 位于脚本末尾的token必须与脚本开始处的token完全一致, 否则脚本的其它内容将被shell视为更多的命令标准输入来解释.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这有一个惯用的技巧来改进here脚本.通常你想通过缩进脚本内容来提高脚本的可读性.你可以将脚本编辑成以下形式:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # make_page - A script to produce an HTML file&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt;- _EOF_&lt;br /&gt;
     &amp;lt;HTML&amp;gt;&lt;br /&gt;
     &amp;lt;HEAD&amp;gt;&lt;br /&gt;
         &amp;lt;TITLE&amp;gt;&lt;br /&gt;
         The title of your page&lt;br /&gt;
         &amp;lt;/TITLE&amp;gt;&lt;br /&gt;
     &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;BODY&amp;gt;&lt;br /&gt;
         Your page content goes here.&lt;br /&gt;
     &amp;lt;/BODY&amp;gt;&lt;br /&gt;
     &amp;lt;/HTML&amp;gt;&lt;br /&gt;
 _EOF_&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
将&amp;quot;&amp;lt;&amp;lt;&amp;quot;替换为 &amp;quot;&amp;lt;&amp;lt;-&amp;quot; 以使bash忽视here脚本中的打头的空格.这样,从cat命令生成的标准输出就不会在开始处含有空格或者tab符号.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O.k., 让我们继续. 我们将缩回我们的页面来显示一些信息:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 5px; background:#e0e0e0&amp;quot;&amp;gt; &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # make_page - A script to produce an HTML file&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt;- _EOF_&lt;br /&gt;
     &amp;lt;HTML&amp;gt;&lt;br /&gt;
     &amp;lt;HEAD&amp;gt;&lt;br /&gt;
         &amp;lt;TITLE&amp;gt;&lt;br /&gt;
         My System Information&lt;br /&gt;
         &amp;lt;/TITLE&amp;gt;&lt;br /&gt;
     &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;BODY&amp;gt;&lt;br /&gt;
     My System Information&lt;br /&gt;
     &amp;lt;/BODY&amp;gt;&lt;br /&gt;
     &amp;lt;/HTML&amp;gt;&lt;br /&gt;
 _EOF_&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在下一节中,我们将继续完善here脚本来显示系统的真实信息.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;center&amp;gt;要知后事如何，且看：《[[替换Substitutions - Part 1 ]]》 &amp;lt;/center&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
© 2000-2007, William Shotts, Jr. Verbatim copying and distribution of this entire article is permitted in any medium, provided this copyright notice is preserved.&lt;br /&gt;
&lt;br /&gt;
Linux® is a registered trademark of Linus Torvalds.&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Sejishikong</name></author>
	</entry>
</feed>