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月日历