shell脚本意义

shell是一种脚本语言,具备计算机语言的基本特点:逻辑判断、循环、自定义函数等。
shell脚本 主要使用 linux系统的命令,来实现特定目的。
可用于自动化运维,提长运维效率。

  • shell脚本基本结构和运行方法

    shell脚本名字以.sh为结尾,标明是一个shell脚本。但系统不是以后缀名区分文件。
    shell脚本开头要标注bang shell,即指明运行的shell。如:#!/bin/bash
    shell脚本解释行:以“#”开头。
    执行方法:

    1. 加执行权限,再运行脚本 。如:chmod a+x 1.sh; ./1.sh
    2. 运行shell加脚本名称 参数。如:bash 1.sh;
      脚本运行过程查看:bash -x 1.sh
      脚本语法检查:bash -n 1.sh
  • 时间命令date

    在shell中,使用时间命令生成对应时间,或是格式化时间 ,以便于脚本 在需要时,得到确切时间。
    时间格式:分为两种,一标以时间戳形式(秒)存在,另一种是时间格式存在,比较随意。
    时间戳:date +%s,转换时间戳为时间格式:date -d @1545661347
    时间格式:date +%时间转换符
    年:“+%Y” 四位数,“+%y” 两位数。
    月:"+%m".
    日:"+%d"
    小时:"+%M"
    分钟:"+%H"
    秒:"+%S"
    其它格式:"+%D"--12/24/18."+%F"--2018-12-24."+%T"--22:30:10.
    周几:"+%w"。 本年中第几周:"+%W"。
    时间格式聚合:如:date "+%Y-%m-%d %M:%H:%S"
    时间计算:
    一天前后:date -d "+1day" +%F;date -d "-1day" +%F
    一月前:date -d "-1month". 分钟:“-1 min”等。

  • 变量定义

    变量使用意义:缩写字符串,定义特定属性,特定值,定义特定命令结果等。
    变量的作用域:条件语句,只在语句范围,如IF语句。
    变量定义特定值:PI=3.14
    变量定义命令结果:如m= wc -l 1.txt
    变量定义特定属性,如用户交互: read -p "input a num:" n; echo $n
    环境变量,预定义环境变量等 。
    位置变量: 脚本 传递参数等。如$0表示脚本 ,$n表示第n个参数。$#表示参数个数
    数字运算:a=1;b=2;c=$(($a+$b)),或$[$a+$b]

  • 逻辑判断if

    if语句常和test判断条件一起,进行逻辑判断。
    if语句格式:

    1. if test ; then 语句; fi
    2. if test ; then 语句; else 语句 ; fi
    3. if test; then 语句; elif test ; else 语句; fi
    • test判断条件分为:

        1. 数值判断

          -eq 等于则为真
          -ne 不等于则为真
          -gt 大于则为真
          -ge 大于等于则为真
          -lt 小于则为真
          -le 小于等于则为真
          因为“>,<”号已经被 输入输出重定向占用了,所以数值判断 符号不能使用它们。

      • 字符串判断

        = 字符串相等为真
        != 字符串不相等为真
        -z 字符串 字符串长度为零则为真
        -n 字符串 字符串长度不为零则为真

      • 文件对象判断

        -e 文件名 如果文件存在则为真
        -r 文件名 如果文件存在且可读则为真
        -w 文件名 如果文件存在且可写则为真
        -x 文件名 如果文件存在且可执行则为真
        -s 文件名 如果文件存在且至少有一个字符则为真
        -d 文件名 如果文件存在且为目录则为真
        -f 文件名 如果文件存在且为普通文件则为真
        -c 文件名 如果文件存在且为字符型特殊文件则为真
        -b 文件名 如果文件存在且为块特殊文件则为真

      • 逻辑条件组合判断

        shell 也提供了 与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低。

转载于:https://blog.51cto.com/sincethen/2334834

SHELL训练营--day5__shell脚本(1)相关推荐

  1. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...

  2. Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)...

    第一种:普通做法 首先,编号写WordCount.scala程序.  然后,打成jar包,命名为WC.jar.比如,我这里,是导出到windows桌面.  其次,上传到linux的桌面,再移动到hdf ...

  3. shell中执行脚本并显示到终端和保存到日志文件中

    我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo  "abck" 以上在手动执行脚本中是可以的,如果是编写 ...

  4. Linux安装Flash脚本,Linux(CentOS)下的Shockwave Flash shell一键更新脚本

    原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2318.html https://www.myzhenai.com/thread-17933-1-1.h ...

  5. shell解析html文件,[Shell] Shell 生成 HTML脚本,可显示表格

    Shell 生成 HTML脚本 生成的格式不好看,以后要多改进. [mon@oracle6 source]$ more gen_html #!/bin/bash datetime=`date +&qu ...

  6. Shell语言-16-Shell脚本调试 -n -v -x -c

    Shell脚本的语法调试,使用bash的相关参数进行调试 sh [参数] 文件名.sh -n 不要执行script,仅查询语法 -v 在执行script之前,先将script的内容输出到屏幕上 -x ...

  7. shell循环执行脚本

    shell循环执行脚本 2017年08月24日 15:28:18 阅读数:215 for i in {1..10}   do      echo "Welcome $i times" ...

  8. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...

  9. shell简介和脚本执行方式

    shell简介和脚本执行方式 1.shell简介 Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输 ...

最新文章

  1. 电脑大小写怎么切换_苹果怎么切换电脑便签?可以自由切换的电脑便签手机日历怎么备注特殊日子?苹果手机日历特殊日子提醒便签...
  2. 前端学习(498):水平居中布局得第一种方式
  3. bootstrap 页面垂直居中_前端布局之——水平垂直居中
  4. 双链表(线性表的链式存储)---C语言版
  5. ubuntu16.04安装配置mysql数据库,分割视频为帧图像
  6. HR:你为什么选择计算机这个行业?
  7. 微型计算机与接口技术总结,微机原理与接口技术课程总结
  8. 华为云服务器如何登录
  9. 如何安装perl模块
  10. 新安装Windows 2012 启动报错0xc0000225
  11. word 图片导入不翻转_如何在Microsoft Word中翻转图片
  12. 无敌破坏王-高清在线观看
  13. ORACLE 常用函数——日期/时间函数(感谢潇湘隐者)
  14. 在Windows中安装MinGW-w64最新版本(目前12.1.0)
  15. [运动控制算法]Pure Pursuit纯路径跟踪算法
  16. 2 自动内存管理机制(一)运行时数据区域、垃圾回收算法和垃圾回收器
  17. 华为服务器管理口在什么位置,华为服务器默认管理口地址吗
  18. python爬取数据分析淘宝商品_python爬取并分析淘宝商品信息
  19. STM32F103驱动ESP8266连接贝壳物联——②串口助手模拟连接贝壳物联
  20. Jetson nano开机

热门文章

  1. 忠告初学者学习Linux系统的8点建议
  2. [转]Ext Grid控件的配置与方法
  3. 在 Ubuntu 配置 PPTP Server
  4. BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
  5. 用百度直达号获取新用户 让顾客直达商家服务
  6. java io在文件结尾持续添加内容
  7. “httpd未被被识别的服务”的解决办法
  8. 用.net中的socket实现文件传输
  9. asp.net三种重定向方法的总结
  10. OpenCV3.3中 K-最近邻法(KNN)接口简介及使用