博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SHELL训练营--day5__shell脚本(1)
阅读量:6501 次
发布时间:2019-06-24

本文共 1688 字,大约阅读时间需要 5 分钟。

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

你可能感兴趣的文章
java面向对象的概念_java面向对象(上)-- 面向对象的概念
查看>>
dbscan算法python实现_Python实现DBScan
查看>>
java智能聊天软件_Java使用青云客智能聊天接口做一个小助手
查看>>
java定义player类_Java自定义一个异常类NoThisSongException和Player类
查看>>
java 字符串 算法 面试题_java笔试手写算法面试题大全含答案
查看>>
java内部类访问外部类变量 final_Java内部类引用外部类中的局部变量为什么必须是final问题解析...
查看>>
java编程思想第四章_《JAVA编程思想》学习笔记——第四章 控制执行流程
查看>>
java 栈帧与类的关系_深入理解Java虚拟机之类运行时栈帧结构
查看>>
php中删除评论怎么做的,详解PHP如何实现评论回复删除功能
查看>>
macports 安装php,「macports」MacOS 中 MacPorts 安装和使用 - 金橙教程网
查看>>
php 审计 for linux,for linux是什么意思
查看>>
matlab里面连接器是什么,Oops - an error has occurred
查看>>
matlab建立桌面图标,在ubuntu16.04上创建matlab的快捷方式(实现方法)
查看>>
matlab 识别率,【caffe-Windows】识别率批量输出——matlab实现
查看>>
MATLAB里面的mghglobal函数,Matlab讨论区 - 声振论坛 - 振动,动力学,声学,信号处理,故障诊断 - Powered by Discuz!...
查看>>
smarty使用php代码,笑谈配置,使用Smarty技术_php
查看>>
oracle数据实际值限制,c# – Oracle数据库TNS密钥“数据源”的值长度超过了’128’的限制...
查看>>
silk v3 decoder php,解码转换QQ微信的SILK v3编码音频为MP3或其他格式
查看>>
linux不能访问80端口,lunux开放80端口(本地访问不了linux文件可能是这个原因)...
查看>>
android单位转换小程序,微信小程序中rpx与rem单位转换
查看>>