12月27日任务shell
20.1 shell脚本介绍编程
20.2 shell脚本结构和执行vim
20.3 date命令用法bash
20.4 shell脚本中的变量运维
shell是一种脚本语言,是一名运维工程师所必需掌握的最基本的能力。经过使用shell能够实现简单的自动化运维,从而减轻咱们的工做压力,增长实际的工做效率。函数
shell脚本是系统命令的集合,经过使用shell的逻辑判断、循环语法、自定义的函数,能够实现更复杂功能脚本的编写。配合Linux的crond服务,可以实现周期性操做的自动化运行,从而大大减小运维工做量。学习
shell脚本的学习须要作到多学多练,熟能生巧。另外Linux基础知识也不容忽视,它是编写一个shell脚本的基础。只有勤学、多练,多思考,这样才能尽快、更好的学好shell编程。spa
一个shell脚本是以.sh
结尾的文件,文件开头#!/bin/bash
。 对于本机而言#!/bin/bash
并非必须的,可是对于其余机器上,不加开头就不必定能够执行,它的意思即其后的代码是由/bin/bash
命令进行解析的。因此编写shell时最好都写上。code
范例:example1.sh字符串
vim example1.sh #!/bin/bash # by test echo "hello world"
由#开头的行在shell中为注释行(#!除外),此外有些特殊的脚本中#开始的行并必定是注释,例如chkconfig脚本。
# 这里脚本在当前工做目录中,执行其余路径下的脚本须要使用绝对路径 chmod +x example1.sh ./example
bash example1.sh
sh -x example1.sh
# 没信息代表没有语法错误 sh -n example1.sh
date命令在shell脚本内十分有用,它能够生成想要的时间格式。
默认date命令显示
[root@localhost shell]# date
经常使用的几种时间格式表示
# 日期 YYYY-MM-DD 格式 date +%F == date +%Y-%m-%d # 时间 HH:MM:SS 格式 date +%T == date +%H:%M:%S # 几天前、后... date -d "+1 day" // 一天后(明天的日期) date -d "-1 day" // 一天前(昨天的日期) date -d "-1 month" // 一月前(上个月的今日) date -d "-1 min" // 一分钟前 # 自1970-01-01后的秒数 date +%s # 将+%s的秒数换为具体时间 date -d @1504697280 # 将具体时间描述换算为秒数 date +%s -d "2018-02-05 19:30:00" #星期几即本年的第几周 date +%w --> 1 //星期一 date +%W --> 06 //18年的第6周 date +%a --> Mon //周一 date +%A --> Monday //周一全称 # 月份 date +%b --> Feb date +%B --> February
shell变量的使用场景
shell的编写过程当中,若是某些字符串屡次使用而且字符串的长度较长时可使用shell变量进行代替,在使用时使用$变量
进行操做,减小重复劳动。例如某些命令的绝对路径表示。
此外在shell条件判断语句时,也经常使用变量,例如:
if[ $a -gt 1 ] then ... fi
引用某个命令的结果时,将命令的结果赋予某个变量,在后续便于进行判断等条件处理。例如 n=wc -l 1.txt
写于用户交互的脚本时,变量也是必不可少的。例如:
read -p "Input a number: " n echo $n
shell内有一些内置变量,其使用场景仍是比较普遍的。
$0 --> 脚本自己 $1 --> 脚本后接的第一个参数 $2 --> 脚本后接的第二个参数 $# --> 参数的个数 $@ -->
shell内能够进行简单的数学运算:
a=1 b=2 c=$(($a+$b)) //或c=$[$a+$b]