shell脚本结构与执行
1. 脚本结构
第一行一定是:#! /bin/bash。该命令说明,该文件使用的是bash语法,如果不设置该行,则该脚本不会被执行。以#开头的行作为解释说明。Shell脚本通常以sh为后缀,用于区分这是一个shell脚本。
[root@localhost ~]# mkdir shell
[root@localhost ~]# cd shell
[root@localhost shell]# vi 1.sh //写入如下内容
#!/bin/bash
touch /tmp/1.txt
chmod 600 /tmp/2.txt
mv /tmp/1.txt /tmp/2.txt
2. 脚本执行
[root@localhost shell]# bash 1.sh
其实shell脚本还有一种执行方法,但前提是脚本本身要有执行权限,所以在执行前我们需要给脚本加一个x权限
[root@localhost shell]# ./1.sh
-bash: ./1.sh: Permission denied
[root@localhost shell]# chmod +x 1.sh //赋予权限
[root@localhost shell]# ./1.sh //执行脚本
常用命令
1. 查看脚本执行过程
[root@localhost shell]# bash -x 1.sh
+ touch /tmp/1.txt
+ chmod 600 /tmp/2.txt
+ mv /tmp/1.txt /tmp/2.txt
2. 查看脚本是否有语法错误
[root@localhost shell]# bash -n 1.sh
3. date命令
显示年、月、日
date +%Y-%m-%d #年(以四位数字格式打印年份)月日
date +%y-%m-%d #年(以两位数字格式打印年份)月日
date +%T #年(以四位数字格式打印年份)月日
显示小时、分钟、秒
date +%H:%M:%S #小时分钟秒
date +%T #小时分钟秒
显示星期
date +%w #一周中的第几天
date +%W #一年中的第几周
时间戳
date +%s #显示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
date -d @164082388 #显示输入秒数之前的时间
显示一个小时之前/之后
date -d "+1 hour" #一个小时后
date -d "-1 hour" #一个小时前
表示一天之前/之后
date -d "+1day" #一天后
date -d "-1 day" #一天前
shell脚本中的变量
1. 引用命令的结果
当我们引用某个命令的结果时,可以使用变量替代
[root@localhost ~]# a=`date +%w` #将命令结果赋值给变量
[root@localhost ~]# echo $a
6
[root@localhost ~]# a=$(date +%w) #将命令结果赋值给变量
[root@localhost ~]# echo $a
6
2. 与用户交互
示例
[root@localhost ~]# read -p "请输入一个数字:" n
请输入一