Shell介绍

  shell是一个用c编写的程序,是用户和系统内核交互的工具。它既是一种命令语言也是一种解释性的编程语言。

Shell的功能

  1. 命令行解释功能。解析命令行中输入的命令。比如ls,cp,df等等。

  2. shell编程,可以开发一些自动化的小工具。比如系统中很多启动脚本就是用shell开发的。

  3. 变量维护。比如打印当前用户echo $USER。

  4. 启动程序,比如启动Apache,nginx等。

  5. 输入输出重定向。

Shell脚本  

  定义:

    shell脚本就是将完成一个任务的所有命令按照执行的顺序,自上而下写入到一个文本文件中,然后给予可执行权限。

  脚本书写规范

    1. shell脚本文件命名不要用无意义的字母或者数字,要见名之意。文件扩展名用.sh结尾。文件名总长度最好不要超过30个字符。

    2. 脚本开头第一行定义脚本执行环境,如 #!/bin/bash 或者 #!/bin/sh,前面#!这个称之为幻数,后面跟的是解释此脚本的shell的路径,内核会根据它来决定用哪个程序来执行。默认是用bash来解释。

     3. 脚本开头要写一些必要的脚本注释信息,就是该脚本的作用,如果没有注释会很难理解脚本的功能,只能通读一遍代码,这样会浪费很多宝贵时间。下面是一个例子。

#Author :songguojun
#Created at : --
#Release : 1.0
#Script Description: nginx install

 

Shell脚本实际案例

1.检查主机存活状态

#!/bin/bash
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in $IP_LIST; do
NUM=
while [ $NUM -le ]; do
if ping -w 2 $IP > /dev/null; then #设置两秒超时时间
echo "$IP Ping is successful."
break
else
# echo "$IP Ping is failure $NUM"
FAIL_COUNT[$NUM]=$IP
let NUM++
fi
done
if [ ${#FAIL_COUNT[*]} -eq ];then
echo "${FAIL_COUNT[1]} Ping is failure!"
unset FAIL_COUNT[*]
fi
done

 2.遍历两个时间段并动态修改时间

#!/bin/bash
#用法 : sh time.sh 2019-01-01 2020-01-01

EXPORT_START_DATE=$
EXPORT_END_DATE=$ date -s "$EXPORT_START_DATE" > /dev/null i=$EXPORT_START_DATE
while [[ $i < `date -d "+1 day $EXPORT_END_DATE" +%Y%m%d` ]]
do
echo $i
i=`date -d "+1 day $i" +%Y-%m-%d`
done

【shell】常用shell脚本的更多相关文章

  1. Linux Shell常用shell命令

    Linux Shell常用shell命令 一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示 ...

  2. shell常用监控脚本

    1.cpu空闲脚本 top -b -n1 |grep 'Cpu'|awk '{print $5}'|sed 's/%//'|sed 's/id,//' 变量赋值 cpu_id='top -b -n1 ...

  3. LINUX下常用SHELL指令

    Linux Shell常用shell命令 一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示 ...

  4. Linux常用Shell脚本珍藏【转载】

    我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...

  5. shell常用脚本

    shell常用脚本 author:headsen chen  2017-10-17 15:36:17 个人原创,转载请注明,否则依法追究法律责任 1,vim  name.grep.sh 2,cat   ...

  6. 8个DBA最常用的监控Oracle数据库的常用shell脚本

    本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重 ...

  7. 常用shell脚本命令

    常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...

  8. linux shell 常用基本语法

    转自网络,真正来源不详.... 一. Linux基本命令 1.1.  cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大. 语法: cp [选项] 源文件或目录 目标文件或 ...

  9. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  10. Shell 起停脚本 专题

    To list any process listening to the port 8080: lsof -i:8080To kill any process listening to the por ...

随机推荐

  1. MyBatis Dao层的编写

    传统的dao层编写 以前编写dao层,先新建一个包com.chy.dao,再写接口StudentDao: public interface StudentDao { public void inser ...

  2. 5.2 Nginx Http 反向代理

  3. 想要转战CSDN了!!

    CSDN博客地址: https://blog.csdn.net/weixin_41559364

  4. angularJs-服务调用与后台数据获取

    可以用factory做一些后台数据的获取,例如 happyFarm.factory('seedList',['$http',function($http){    return {        ge ...

  5. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:对象的多态性

    class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun ...

  6. Day6-T3

    原题目 某个帝国修了一条非常非常长的城墙来抵御外敌,城墙共分N段,每一段用一个整数来描述坚固程度. 过了几年,城墙年久失修,有很多段都己经损坏,于是皇帝决定派你去修理城墙,但是经费有限. 所以你准备先 ...

  7. C++编程学习(十一) 指针和引用的区别

    1.指针有自己的一块空间,而引用只是一个别名: 2.使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小: 3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象 的引用: ...

  8. 06.Delphi接口的不对等的多重继承

    uSayHello代码如下 unit uSayHello; interface uses SysUtils, Windows, Messages, Classes, Graphics, Control ...

  9. uniapp属性插值报错Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead.

    解决方法: 因为vue 2.x不支持对属性使用插值{{}}的方式赋值,所以要使用v-bind指令(或简写“:”)来指定属性. v-bind指令 v-bind:id="item.id" ...

  10. gem5-gpu 全系统FS模式 系统调用SE模式

    SE模式中无线程调度器,只能运行单线程程序,如SPEC CPU 2006,仅模拟片上CPU.GPU.Network和DRAM等. FS模式需加载虚拟Linux和磁盘,Linux负责线程调度.实现了Pt ...