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脚本基础的主要内容,如果未能解决你的问题,请参考以下文章