学习源
shell脚本
shell脚本就是将完成一个任务的所有的命令按照执行的先后顺序,自上而下写入到一个文本文件中,然后给予执行权限。
如何书写一个shell脚本
shell脚本的命名:
- 名字要有意义;
- 不超过30个字节
- .sh结尾
- 名字不要太长
- 区分大小写
shell脚本格式:
shell脚本开头必须指定脚本运行环境 以 #!
这个特殊符号组合来组成。
如:#!/bin/bash
指定该脚本是运行解析由/bin/bash
来完成的;
注释
shell脚本中,最好加入脚本说明字段
#!/bin/bash
#Author: hardy9sap
#Created Time: 2019/08/27 12:27
#Script Description: first shell study script
运行shell脚本
(1)给予执行权限
a) . filename
b) ./filename
(2)解释器执行(无需权限)
a) bash filename
bash -x filename DEBUG模式
b) sh filename
shell中的特殊符号
~: 家目录 # cd ~ 代表进入用户家目录
!: 执行历史命令 !! 执行上一条命令
$: 变量中取内容符
+ - * \ %: 对应数学运算 加 减 乘 除 取余数
&: 后台执行
*: 星号是shell中的通配符 匹配所有
?: 问号是shell中的通配符 匹配除回车以外的一个字符
;: 分号可以在shell中一行执行多个命令,命令之间用分号分割
|: 管道符 上一个命令的输出作为下一个命令的输入 cat filename | grep "abc"
\: 转义字符
``: 反引号 命令中执行命令 echo "today is `date +%F`"
' ': 单引号,脚本中字符串要用单引号引起来,但是不同于双引号的是,单引号不解释变量
" ": 双引号,脚本中出现的字符串可以用双引号引起来
shell中的管道运用
| 管道符在shell中使用是最多的,很多组合命令都需要通过组合命令来完成输出。管道符其实就是下一个命令对上一个命令的输出做处理。
shell重定向
> 重定向输入 覆盖原数据
>> 重定向追加输入,在原数据的末尾添加
< 重定向输出 wc -l < /etc/passwd
<< 重定向追加输出 fdisk /dev/sdb <
shell数学运算
expr 命令:只能做整数运算,格式比较古板,注意空格
[root@baism ~]# expr 1 + 1
2
[root@baism ~]# expr 5 - 2
3
[root@baism ~]# expr 5 \* 2 #注意*出现应该转义,否则认为是通配符
10
[root@baism ~]# expr 5 / 2
2
[root@baism ~]# expr 5 % 2
1
使用bc计算器处理浮点运算,scale=2代表小数点保留两位
[root@baism ~]# echo "scale=2;3+100"|bc
103
[root@baism ~]# echo "scale=2;100-3"|bc
97
[root@baism ~]# echo "scale=2;100/3"|bc
33.33
[root@baism ~]# echo "scale=2;100*3"|bc
300
双小圆括号运算,在shell中(( ))也可以用来做数学运算
[root@baism ~]# echo $(( 100+3))
103
[root@baism ~]# echo $(( 100-3))
97
[root@baism ~]# echo $(( 100%3))
1
[root@baism ~]# echo $(( 100*3))
300
[root@baism ~]# echo $(( 100/3))
33
[root@baism ~]# echo $(( 100**3)) #开方运算
1000000
退出脚本
exit NUM 退出脚本,释放系统资源,NUM代表一个整数[0, 255],代表返回值。
一般0表示命令执行正常,非0表示命令执行错误