-
初始项目
#!/bin/bash # Program to output a system information page echo "<html>" echo " <head>" echo " <title>page title</title>" echo " </head>" echo " <body>" echo " page body" echo " </body>" echo "</html>"
一个带引号的字符串可以包含换行符,因此可以包含多个文本行,shell将持续读取文本,直到读取到下一个引号为止。(命令行中也是如此工作的,换行时以>开头,该字符定义在PS2变量中)
也因此,以上脚本等效果于#!/bin/bash # Program to output a system information page echo "<html> <head> <title>page title</title> </head> <body> page body </body> </html>"
-
加入一些描述信息
#!/bin/bash # Program to output a system information page echo "<html> <head> <title>SYSTEM INFORMATION REPORT</title> </head> <body> <h1>SYSTEM INFORMATION REPORT</h1> </body> </html>"
上述脚本中,可以看到有两处展示文本SYSTEM INFORMATION REPORT,当脚本中多处含有相同信息时,可以提取出来以变量的形式声明定义和使用,这样修改维护时即可一处修改即可。如下:
#!/bin/bash # Program to output a system information page TITLE="SYSTEM INFORMATION REPORT" echo "<html> <head> <title>$TITLE</title> </head> <body> <h1>$TITLE</h1> </body> </html>"
shell中变量的命名规则:
变量名称由字母、下划线和数字组成;
变量名称必须以字母和下划线开头;
变量名称中不允许有空格和标点。
常量和变量的区别:
没有区别,常量只是有确定值的变量,一般不做修改操作,一旦定义值就不在变化,本质上还是变量。
shell中约定成俗的是用大写字母表示常量,使用小写字母表示变量。 -
变量赋值和使用
variable=value
在赋值时,变量名等号和值之间不能含有空格
a=5 b="a string"
可以在一行中给多个变量赋值,空格隔开
变量使用 $variable 进行变量扩展。当变量名因为上下文变得不明确时候,可以用花括号{}把变量名括起来进行扩展。
#!/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" echo "<html> <head> <title>$TITLE</title> </head> <body> <h1>$TITLE</h1> <p>$TIME_STAMP</p> </body> </html>"
-
here文档
here文档是IO重定向的另外一种形式,在脚本中嵌入正文文本,输入到一个命令的标准输入中
格式:
command是可以接收标准输入的任意命令,token用来指示嵌入文档的开始和结束,text为文档内容。command << token text token
使用here文档修改脚本如下#!/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_
here文档优点:
使得文档中的单引号和双引号失去在shell中的特殊含义;#!/bin/bash age=18 cat << _EOF_ "$age" '$age' \$age _EOF_
可以和接受标准输入的任意命令结合使用;
“<<”修改成“<<-”后,可以忽略here文档中开头的tab字符,从而可以进行缩进编辑,增强可读性。可以关注作者微信公众号,追踪更多有价值的内容!
shell编程 - 变量赋值与使用/here文档
于 2023-05-03 21:12:00 首次发布
本文介绍了如何使用Bash脚本创建一个简单的HTML页面来显示系统信息报告。内容包括设置变量以提高代码复用,利用here文档嵌入HTML内容以及日期和时间的处理。示例脚本展示了如何将系统变量如hostname和当前时间集成到输出中,提高脚本的动态性。
摘要由CSDN通过智能技术生成