您的位置:首页 > 运维架构 > Shell

启动一个shell脚本项目

2016-06-30 18:00 831 查看
创建项目的目的是为了了解怎么使用各种各样的shell功能来创建程序,更重要的是,创建好程序。 我们将要编写一个程序是一个报告生成器。它会显示系统的各种统计数据和它的状态,并将产生HTML格式的报告,所以我们能通过网络浏览器,比如说Firefox或者chrome来查看这个报告。在命令行输入 vi sys_info_page,文件内容:

#!/bin/bash
#Program to output a system information page
echo "<HTML>
<HEAD>
<TITLE>Page Title</TITLE>
</HEAD>
<BODY>
page body
</BODY>
</HTML>"


给文件赋予执行权限 chmod 777 sys_info_page

再将输出打印到html文件中 ./sys_info_page sys_info_page.html

用firefox打开网页 firefox sys_info_page.html

到这执行一起都正常,我们再往网页里面添加一点数据,将脚本内容修改如下:

#!/bin/bash
#Program to output a system information page
title="System Information Report"
echo "<HTML>
<HEAD>
<TITLE>${title}</TITLE>
</HEAD>
<BODY>
${title}
</BODY>
</HTML>"


像java一样,变量起名有一定规范,规范如下:

1,变量名可由字母数字字符(字母和数字)和下划线字符组成。

2,变量名的第一个字符必须是一个字母或一个下划线。

3,变量名不允许出现空格和标点符号。

4,常亮一般全大写,变量一般小写(约定)

在ubuntu中除了echo标准输出,还有 here documents也可以输出。语法如下:

command << token
text
token


这里的command是一个可以接收标准输入的命令名,token是一个用来指示嵌入文本结束的字符串。我们将修改我们的脚本,来使用一个here document:

#!/bin/bash
#Program to output a system information page
TITLE="System Information Report FOR $HOSTNAME"
CURRENT_TIME=$(date +"%x %r %Z")
TIME_STAMP="Generated $CURRENT_TIME, by $USER"

cat << _EOF_
<HTML>
<HEAD>
<TITLE>${TITLE}</TITLE>
</HEAD>
<BODY>
<H1>$TITLE</H1>
<P>$TIME_STAMP</P>
</BODY>
</HTML>
_EOF_


最终运行效果图:



需要注意的是:

1,脚本中的date,CURRENT_TIME ,USER是系统常量。

2,注意这个token必须在单独一行出现,并且文本行中末尾不能有空格。

3,“EOF”可以用任意字符串代替。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: