shell程序
- 以文件形式存放==批量的Linux命令集合==,该文件能够被Shell解释执行,这种文件就是Shell脚本程序
- 通常由一段Liunx命令、Shell命令、控制语句以及注释语句构成
- Shell脚本的编写
- Shell脚本是纯文本文件,可以使用任何文本编辑器编写
- Shell脚本通常是以.sh作为后缀名
语法
- 第一行指定
#!/bin/bash
或者 #!/bin/sh
- 使用
#
注释
变量
- 变量名必须以字母或者下划线开头
- 变量名关于大小写敏感
- 取值:
echo $name
或者 echo ${name}
- 写入:
name="hw"
==等号两边不能有空格== - 如果参数有空格需要用
"hello world"
引起来
变量类型
- 本地变量:只存在当前session
- 全局环境变量:
/etc/profile
==按照惯例需要大写== - 用户环境变量:
/.bash_profiles
位置参量
- 需要使用
$1-$9 / ${10+}
来显示变量参数 $0
:表示当前脚本的文件名$#
:显示当前脚本的参数个数$*
:以单个字符串显示所有的位置参量$!
:最后一个后台运行的进程的进程号$?
:显示前面最后一个命令的退出状态。0表示没有错误,其他任何值表示有错误
执行脚本
. test.sh
./test.sh
sh test.sh
数组的定义、引用
arr=(zhangsan lis wangz)
:定义数组echo ${arr[0]}
:查看数组元素echo ${arr[*]}
:列出数组所有的元素echo ${#arr[*]}
:查看数组的元素个数arr[0]=zhangsan
:赋值
date命令
date +%Y-%m-%dT%H:%M:%S
:格式化日期
[root@fz hw]# date +%Y-%m-%dT%H:%M:%S
2018-08-06T17:39:04
${date +%Y-%m-%d}
:shell中定义${date --date='2 days ago' +%Y-%m-%d}
:两天前${date --date='-1 days ago' +%Y-%m-%d}
:一天后date -s 2018-09-01
:设置日期cal 12 2018
:查看2018年12月日历