Shell编程基础 shell的结构、执行及变量

12月27日任务shell

20.1 shell脚本介绍编程

20.2 shell脚本结构和执行vim

20.3 date命令用法bash

20.4 shell脚本中的变量运维

 

shell脚本介绍

shell是一种脚本语言,是一名运维工程师所必需掌握的最基本的能力。经过使用shell能够实现简单的自动化运维,从而减轻咱们的工做压力,增长实际的工做效率。函数

shell脚本是系统命令的集合,经过使用shell的逻辑判断、循环语法、自定义的函数,能够实现更复杂功能脚本的编写。配合Linux的crond服务,可以实现周期性操做的自动化运行,从而大大减小运维工做量。学习

shell脚本的学习须要作到多学多练,熟能生巧。另外Linux基础知识也不容忽视,它是编写一个shell脚本的基础。只有勤学、多练,多思考,这样才能尽快、更好的学好shell编程。spa


Shell脚本结构和执行方法

一个shell脚本是以.sh结尾的文件,文件开头#!/bin/bash。 对于本机而言#!/bin/bash并非必须的,可是对于其余机器上,不加开头就不必定能够执行,它的意思即其后的代码是由/bin/bash命令进行解析的。因此编写shell时最好都写上。code

范例:example1.sh字符串

vim example1.sh
#!/bin/bash
# by test

echo "hello world"

由#开头的行在shell中为注释行(#!除外),此外有些特殊的脚本中#开始的行并必定是注释,例如chkconfig脚本。

执行脚本的方法

  1. 先赋予执行权限,再./执行
# 这里脚本在当前工做目录中,执行其余路径下的脚本须要使用绝对路径
chmod +x example1.sh
./example
  1. 使用bash命令
bash example1.sh

查看脚本执行过程

sh -x example1.sh

检测脚本语法

# 没信息代表没有语法错误
sh -n example1.sh

date命令用法

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变量进行代替,在使用时使用$变量进行操做,减小重复劳动。例如某些命令的绝对路径表示。

条件判断

此外在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]
相关文章
相关标签/搜索