您的位置:首页 > 运维架构 > Shell

20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量

2018-03-28 09:21 1001 查看

20.1 shell脚本介绍

shell 是一种脚本语言;和传统的开发语言比较,会比较简单

shell有自己的语法;可以使用逻辑判断、循环等语法

可以自定义函数

定义函数的目的,就是为了减少重复代码

shell是系统命令的集合

shell脚本可以实现自动化运维,能打打的增加我们的运维效率

20.2 shell脚本结构和执行

开头需要加#!/bin/bahs //告诉系统,这个脚本是通过哪一个解释器来进行操作的

以#开头的行作为解释说明

脚本的名字以.sh结尾,用于区分这是一一个shell脚本

执行方法有两种:

chmod +x 1.sh; ./1.sh

bash 1.sh

查看脚本执行过程

bash -x 1.sh

[root@aminglinux-02 shell]# sh -x 01.sh
+ echo 123        //表示运行的命令
123
+ w
13:34:49 up  3:11,  1 user,  load average: 0.16, 0.06, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.133.1    10:23    1.00s  0.07s  0.01s w
+ ls
01.sh

查看脚本是否有语法错误

bash -n 1.sh

没有输出,表示没有错误

修改一下文件测试一下错误

#!/bin/bahs
echo "123"
w
ls
for i in `seq 1 10`
do
echo $i
don

[root@aminglinux-02 shell]# sh -n 01.sh
01.sh:行9: 语法错误: 未预期的文件结尾

20.3 date命令用法

date 在shell中用处非常大;对文件后缀增加一个时间,以便后期管理

date +%Y-%m-%d, date+%y-%m-d 年月日

[root@aminglinux-02 shell]# date +%Y
2017   //四位的年
[root@aminglinux-02 shell]# date +%y
17    //二位的年
[root@aminglinux-02 shell]# date +%m
09  //月
[root@aminglinux-02 shell]# date +%M
52   //分
[root@aminglinux-02 shell]# date +%h
9月 //中文显示,或因为显示
[root@aminglinux-02 shell]# date +%H
13 //时
[root@aminglinux-02 shell]# date +%d
12 //日
[root@aminglinux-02 shell]# date +%S
47  //秒

[root@aminglinux-02 shell]# date +%F
2017-09-12
[root@aminglinux-02 shell]# date +%T
15:21:29

date +%H:%M:%S 等同于 date +%T 时间

[root@aminglinux-02 shell]# date  +%H:%M:%S
15:23:18

[root@aminglinux-02 shell]# date +%D
09/12/17   //月日年

时间戳

[root@aminglinux-02 shell]# date +%s
1505200715  //距离1970总共过去多少秒

具体时间换算成时间戳

[root@aminglinux-02 shell]# date -d @1505200715
2017年 09月 12日 星期二 15:18:35 CST

date +%w星期几;date +%W 本年的第几个星期

cal 以日历形式显示

[root@aminglinux-02 shell]# cal

九月 2017
日 一 二 三 四 五 六
1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

date -d "+1 day" +%F 一天后

date -d "-1 day" +%F一天前

date -d "-1 month" +%F一个月前

date -d "-1 min " +%F一分钟前

date -d "-1 year " +%F 一年前

20.4 shell脚本中的变量

• 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替

• 使用条件语句时,常使用变量

if [ $a -gt 1 ]; then ... ; fi

• 引用某个命令的结果时,用变量替代

n=`wc -l 1.txt`

• 写和用户交互的脚本时,变量也是必不可少的

read -p "Input a number: " n; echo $n

如果没写这个n,可以直接使用$REPLY

• 内置变量

$0, $1, $2…

$0表示脚本本身,$1 第一个参数,$2 第二个 .... $#表示参数个数

• 数学运算

a=1;b=2; c=$(($a+$b))

或者

$[$a+$b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐