对网站建设有什么样好的建设意见,江苏省建设工程信息一体化平台,word导入wordpress,wordpress一键优化1.构建基础脚本
1.1 创建shell脚本
1.1.1 第一行需要指定使用的shell
# 用作注释行.shell并不会处理脚本中的注释行,但是第一行的注释,会告诉shell使用哪个shell来运行脚本.
#!/bin/bash
1.1.2 让shell找到你的脚本
直接运行脚本会提示-bash: a.sh: command not found.因…1.构建基础脚本
1.1 创建shell脚本
1.1.1 第一行需要指定使用的shell
# 用作注释行.shell并不会处理脚本中的注释行,但是第一行的注释,会告诉shell使用哪个shell来运行脚本.
#!/bin/bash
1.1.2 让shell找到你的脚本
直接运行脚本会提示-bash: a.sh: command not found.因为shell会通过PATH环境变量来查找命令,但是很明显PATH里面不存在我们的脚本路径 要让shell找到a.sh脚本有两种方法
1)将放置shell脚本的目录添加到PATH环境变量中
2)在命令行中间使用绝对或是相对路径来引用shell脚本 1.1.3 给shell脚本赋予执行权限
因为umask的默认值为022,所以创建出来的文件权限是644,文件没有执行权限,所以需要添加执行权限 1.2 echo 显示消息
1) echo 字符串,就会显示这个字符串,使用单双引号的不同嵌套方式来实现显示字符串里面存在引号 2)echo -n将字符串和命令输出在同一行 1.3 使用变量2 1.3.1 环境变量
环境变量包括全局环境变量和局部环境变量,全局使用printenv查看,set可以查看所有环境变量.在脚本中间可以在环境变量名前加$来使用他们,但是在shell中间看到$就以为在引用变量,要显示$的话,就需要反斜线来实现转义. 1.3.2 用户自定义变量
自定义变量可以数字字母下划线组成,变量名区分大小写.重要的是变量名值,三者之间没有空格. 赋值时变量不需要加$,引用时前面需要加$.
1.3.3 命令替换
shell脚本中可以从命令输出中提取信息并将其赋值给变量.将输出赋值给变量之后,就可以在脚本中随意使用了.
有两种方法可以将命令输出给变量:
1) 反引号 2) $() 将/usr/bin文件夹下面的的内容,写入到.log文件中,文件名按照当前日期 来进行命名.
%y%m%d会将日期显示为两位数字的年月日. 1.4 重定向输入和输出
1.4.1 输出重定向 格式: command outputfile
会将命令的输出发送至文件里面.重定向运算符会创建新的文件(使用默认的umask设置),如果文件已存在,就会用新数据覆盖已有数据.
格式:command outputfile
如果文件已经存在就进行追加而不是覆盖.
1.4.2 输入重定向
格式: command inputfile
会将文件的内容重定向至命令. wc命令可以统计数据中的文本,默认输出3个值,文本的行数,文本的单词数,文本的字节数.
输出的内容为55行,82个单词,994个字节
1.4.3 内联输入重定向
格式:command marker
data
marker
无需使用文件进行重定向,只需要在命令行中间指定用于输入重定向的数据即可.这个marker作为文本的起止符号.
# !/bin/bash
wc EOF
test string 1
test string 2
test string 3
EOF 1.4.4 输入和输出重定向结合使用
格式: command outputfile marker
data
marker
将执行command的输出放入到重定向的文件里面
# !/bin/bash
cat $(date %y%m%d).log EOF
test string 1
test string 2
test string 3
EOF 1.5 管道
格式: command1 | command2
将第一个命令产生的输出传给第二个命令
1.6 执行数学运算
在bash中将运算结果赋值给变量可以使用$[operation],但是bash shell只是支持整数运算,使用浮点数进行计算时就会报错syntax error: invalid arithmetic operator (error token is .22)
# !/bin/bash
# 加法
var$[12]
echo 这是加法:$var
# 乘法
var1$[1*2]
echo 这是乘法:$var1
# 除法
var2$[4/2]
echo 这是除法:$var2 # 浮点数加法
var$[1.22]
echo 这是加法:$var 1.7 浮点数解决方案 1.7.1 bc计算器
最常见的用法是使用内建的bash计算器bc.bash计算器实际上是一种编程语言,允许命令行中间输入浮点数表达式,然后解释并计算该表达式,最后返回结果.bash计算器可以识别以下内容:
1)数字(整数和浮点数)
2)变量(简单的变量和数组)
3)注释(#或是c语言的/**/开始的行
4)表达式
5)编程语句(if-then)
6)函数
支持识别浮点数,使用quit退出bc计算器. 浮点数运算是由内建变量scale来控制的,控制计算结果的小数位.并且bc计算器支持变量,可以使用print打印变量和数字.同时使用bc -q,可以跳过冗长的欢迎信息. 1.7.2 在脚本中使用bc计算器
可以使用命令替换的方式来执行bc命令,将输出结果赋值给变量
格式:
variable$(echo options;expression|bc)
options表示要设置的变量,这个变量可以是多个,用;来分隔它们.expression定义了要执行的数学表达式.
# !/bin/bash
# bc计算器
res$(echo scale4;var120;var210.0;var33.5;var1/var2var3|bc)
echo $res expression表达式可以使用shell当中的变量,当然bc计算器里面的变量.仅是在bc中间起到效果.但是此时调用变量就要按照shell的语法规则行事,$变量名
# !/bin/bash
var120
var210.0
var33.5
# bc计算器
res$(echo scale4;$var1/$var2$var3|bc)
echo $res 如果存在大量的计算,一个命令行中间列出多个表达式容易让人感觉头晕.就可以使用内联输入重定向来解决这个问题.
格式:
variable$(bcEOF
options
statements
expressions
EOF)
# !/bin/bash
# bc计算器之内联重定向
var120
var210.0
var33.5
res$(bcEOF
var43.6
scale4
a1$var1/$var2
b1$var3var4
a1b1
EOF)
echo bc计算器输出结果为: $res 1.8 退出脚本
1.8.1 查看退出状态码 shell中每个命令都是用退出状态码来告诉shell自己已经运行完毕.退出状态码是0~255的整数值.命令结束时会传递给shell,并且可以获取到这个值在脚本中使用.$?中间存储着最后一个已执行命令的退出状态码.成功的命令,退出状态码是0,错误结束的命令,退出状态码是个整数. 1.8.2 exit命令
exit命令允许脚本结束时指定一个退出状态码 ,退出状态码是在0~255之间,如果退出状态码超过这个范围,结果就是为值/256得到的余数. 1.9 实战
编写一个shell脚本计算两个日期之间的天数,允许用户以date命令能识别的任何形式来指定日期.
mac系统和linux系统的形式并不相同,使用date -d 2024-02-21无法执行,使用下面形式进行替换.
# !/bin/bash
# 编写一个shell脚本计算两个日期之间的天数,允许用户以date命令能识别的任何形式来指定日期
date12024-02-21
date22024-03-21
time$(date -j -f %Y-%m-%d $date1 %s)
time2$(date -j -f %Y-%m-%d $date2 %s)
echo $time
echo $time2
time3$[$time2-$time]
echo 两个时间差额的秒数: $time3
day$(echo $time3/24/60/60|bc)
echo $day 2.结构化命令
2.1 if-then语句
格式:
if command
then commands
fi
格式2:
if command;then commands
fi
# !/bin/bash
if pwd /dev/null;
thenecho it worked
fi 2.2 /dev/null
if后面的command成功运行,退出状态码为0,就会执行then语句,在这里使用了/dev/null,
/dev/null是一个特殊的设备文件它会丢弃所有写入它的数据读取它会立即返回文件结束EOF
2.2.1 丢弃命令的标准输出
command /dev/null
2.2.2 同时丢弃命令的标准输出和标准错误
command /dev/null
2.2.3 只丢弃命令的标准错误
command 2 /dev/null