shell基础

╄→гoц情女王★ 提交于 2020-01-12 14:02:25

shell脚本基础

1)什么是脚本:一个可以执行的文件,运行可以带来某种功能

2)规范shell脚本组成

        #!环境声明            //默认/bin/bash          
        #注释文本
        可执行代码

3)管道传递 |

4)屏幕输出文本的类别

      标准输出(1):命令行执行正常的显示结果
      标准错误(2):命令行执行出错或异常时的显示结果 

5)重定向输出

        >      //将前面命令的正确输出进行重定向
        2>     //将前面命令的错误输出进行重定向
        &>      //将前面命令的正确和错误输出进行重定向
        1>&2     //同 >&2 , 将命令行的标准输出编程标准错误

6)单引号 ’ ’ //取消所有特殊字符的含义

变量: 以不变的名称存放可能会变化的值

  变量名=变量值
  1)方便以固定名称重复使用某个值
  2)提高对任务需求运行环境变化的适应能力

read

      1)产生交互    
      2)记录输入
      3)将输入赋值给一个变量       // read 变量名
    read -p '屏幕输出信息'  变量     //用于给出提示符

定义/赋值变量注意事项

   若指定变量名已存在,相当于为变量重新赋值
   等号两边没有空格
   变量由字母 /数字/下划线组成,区分大小写
   不能以数字开头

引用变量

   $变量名      ${变量名}

条件测试

           [ 测试表达式 ]
  常用的测试选项:
              !         //反义   [  !  -f  /etc/passwd ] 
              1) 检查文件状态: -e    //存在为真     
                                                       -d    //存在且是目录为真
                                         -f     //存在且是文件为真
       2)比较整数大小:  -ge    //大于等于
                                -gt     //大于
                                -eq     //等于
                                -ne     //不等于
                                -le      //小于等于
                                -lt       //小于
       3)字符串比对:   ==     //一致为真
                              !=      //不一致为真

if选择结构

    if双分支处理
        if   条件测试  ;then
            命令序列xx
        else
             命令序列yy
         fi

列表式循环

   循环: 解决重复性操作
   for循环
         for  变量名  in  值列表 
         do
              命令序列
         done

使用命令替换取值

     $(命令行)

shell思路

   1)明确任务需求:按自然语言拆分小步骤,按顺序整理好
   2)编写代码文件:每一个步骤怎么实现,转换成命令行保存到脚本文件
   3)测试并完善:运行脚本,并根据结果排除错误,代码优化

1.shell脚本,可以大幅度提高工作效率的工具.

脚本基本要求:通常需要使用非交互执行指令,能安静地在后台执行,执行效率高
cat /etc/shells #显示本机的命令解释器

2.bash优点, 别名,快捷键,tab键,管道,重定向,历史记录

3.脚本的规范:

1)声明解释器
#!/bin/bash
2)注释,脚本的功能介绍,变量的含义等
#XXXXX
3)编写代码

4.脚本执行方法:

1)作为命令字
指定脚本文件的路径,需要有x权限
2)作为参数(不要求x权限)
sh 脚本文件路径
source 脚本文件路径
. 脚本文件路径 #等同于source

5.调试Shell脚本

1)直接观察执行中的输出,报错信息
2)通过sh -x 开启调试模式
3)在可能出错的地方设置echo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!