shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

Shell脚本介绍

shell是一种脚本语言 blog.lishiming.net(阿铭的博客,可以去里面找shell习题)
可以使用逻辑判断、循环等语法
可以自定义函数,减少重复代码
shell是系统命令的集合
shell脚本可以实现自动化运维,能大大增加我们的运维效率

Shell脚本结构和执行

开头需要加#!/bin/bash

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

脚本的名字以.sh结尾,用于区分这是一个shell脚本
写一个简简单的脚本
#!/bin/bash
#Linletao
#2018-5-29
echo llt
w

执行方法有两种
1.chmod +x 1.sh; ./1.sh
[root@linletao-001 shell]# chmod +x 1.sh
[root@linletao-001 shell]# ./1.sh
llt
19:50:36 up 30 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.218.1 19:40 4.00s 0.10s 0.00s /bin/bash ./1.sh

2.bash 1.sh
[root@linletao-001 shell]# bash 1.sh
llt
19:51:10 up 31 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.218.1 19:40 6.00s 0.10s 0.01s w

3.sh 1.sh
[root@linletao-001 shell]# sh 1.sh
llt
19:52:10 up 32 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.218.1 19:40 2.00s 0.11s 0.01s w

查看脚本执行过程 bash -x 1.sh
[root@linletao-001 shell]# bash -x 1.sh

  • echo llt
    llt
  • w
    19:52:49 up 33 min, 1 user, load average: 0.00, 0.01, 0.05
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root pts/0 192.168.218.1 19:40 1.00s 0.10s 0.00s bash -x 1.sh

查看脚本是否语法错误 bash -n 1.sh
写一个错误脚本
#!/bin/bash
#Linletao
#2018-5-29
echo llt
w
for i in 'seq 1 10'
do
echo $i
这里面没有用done结尾
[root@linletao-001 shell]# bash -n 1.sh
1.sh:行10: 语法错误: 未预期的文件结尾
这样能检测出脚本的语法错误

date命令用法

date +%Y-%m-%d, date +%y-%m-%d 年月日
Y为四位的年,如2017。y为两位的年,如17
m为月份。M为分钟
d为日期。D可以直接标记年月日,比如 date +%D 05/29/18

我们也可以将他们组合在一起
[root@linletao-001 shell]# date +%y%m%d
180529

也可以这样执行,data+%F
[root@linletao-001 shell]# date +%F
2018-05-29

date +%H:%M:%S = date +%T 时间
[root@linletao-001 shell]# date +%H:%M:%S
20:31:26
H为小时
M为分钟
S为秒。
时间也可以用date +%T来显示
[root@linletao-001 shell]# date +%T
20:26:58
date +%s 时间戳,他的依据是1970年1月1日0点0分到现在过去了多少秒

[root@linletao-001 shell]# cal
五月 2018
日 一 二 三 四 五 六
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 31
以日历的形式查看日期

date -d "+1day" 一天后
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分钟前
date +%w, date +%W 星期
w为周。W为今年的第几周。

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]

猜你喜欢

转载自blog.51cto.com/13067688/2121733