shell脚本基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本基础相关的知识,希望对你有一定的参考价值。

一、shell脚本介绍

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

  • shell是一种脚本语言;
  • 可以使用逻辑判断、循环等语法;
  • 可自定义函数;
  • shell是系统命令的集合;
  • shell脚本可以实现自动化运维,能大大增加我们的运维效率;

二、shell脚本结构和执行

1、结构

  • 开头需要“#!/bin/bash“;
  • 脚本内容中以#开头的行作为解释说明;
  • 编写脚本时备注:作者、时间、功能等信息,方便之后查看;
  • 脚本的名字用“.sh”结尾,用于区分这是一个shell脚本;

2、执行方式

1、作为可执行程序:给脚本添加执行权限chmod a+x test.sh,然后直接执行该脚本./test.sh;
2,作为解释器参数:使用sh执行# sh test.sh;

3、参数

-x:sh -x test.sh 查看脚本执行过程
-n:sh -n test.sh 检测语法错误

三、date命令用法

date命令用于显示或设置系统时间与日期。
命令选项:

-d :显示字符串指定的日期与时间(字符串前后必须加上双引号)
-s:根据字符串来设置时间与日期(字符串前后必须加双引号)

命令实例:

[[email protected] ~]# date               //显示当前日期时间
2018年 04月 17日 星期二 19:54:50 CST
[[email protected] ~]# 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

[[email protected] ~]# date +%Y          //显示年份
2018
[[email protected] ~]# date +%y           //年份简写
18
[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S %w"               //年月日,时分秒,星期
2018-04-17 19:58:30 2
[[email protected] ~]# date +%F        //完整日期的另一种显示
2018-04-17
[[email protected] ~]# date +%W          //一年中的第几周
16 
[[email protected] ~]# date +%T                //当前时间
20:01:19
[[email protected] ~]# date "+%F %T"        //日期时间
2018-04-17 20:01:45
[[email protected] ~]# date +%s              //时间戳(显示从1970年1月1日00:00:00到目前经历的秒数)
1523966522
[[email protected] ~]# date -d @1523966522              //时间戳转化成具体日期
2018年 04月 17日 星期二 20:02:02 CST
[[email protected] ~]# date +%s -d "2018-04-17 20:04:59"         //日期转化为时间戳
1523966699
[[email protected] ~]# date -d "-1 year" +%Y    //前一年
2017
[[email protected] ~]# date -d "-1 month" +%m   //前一月
03
[[email protected] ~]# date -d "-1 day" +%d      //前一天
16
[[email protected] ~]# date -d "2 year 2month 2 day" +%Y-%m-%d          //当前日期的下2年的下2月下2天
2020-06-19

四、shell中的变量

  • 当脚本中使用某个字符串,多次频繁并且字符串长度很长时,就应该使用变量代替
  • 使用条件语句时,常使用变量 if [ $a -gt 1];then ...;fi
  • 引用某个命令的结果时,用变量替代 n=wc -l 1.txt
  • 写和用户交互的脚本时,变量也是必不可少的 read -p "lnput a number:" n; echo $n 如果没有写这个n, 可以直接使用$REPLY
  • 内置变量 $0,$1,$2... $0表示脚本本身,$1 第一个参数,$2第二个... $#: 表示参数个数
  • 数学运算a=1;b=2;c=$($a+$b)或者$[$a+$b]

以上是关于shell脚本基础的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本 片段

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

常用python日期日志获取内容循环的代码片段

shell脚本引用expect

shell脚本基础

linux学习19 shell脚本基础-bash脚本编程基础及配置文件