美文网首页
shell编程基础

shell编程基础

作者: Mr_ran | 来源:发表于2018-09-10 10:40 被阅读0次
  • 基础入门:
    • 文件名命名要求: .sh结尾
    • 文件第一行注明shell解释器: #!/bin/bash (其实该行是不会解析的,都是为了让别人看得更清晰)
    • 文件执行方法:
      • 给文件一个 x 权限:可执行权限 可以直接运行
      • 通过sh 程序运行: 如 sh ./test.sh
    • 注释:
      • 单行: #
      • 多行: :<<! !
  • 变量
    • 自定义普通变量

      • 定义(一般使用大写,中间不可以有空格) A=123
      • 使用 $A
      • 撤销 unset A
      • 例如:


        定义变量
    • 自定义静态变量

      • 定义 readonly A=100
      • 使用 $A
      • 不可撤销
    • 系统变量

      • 定义在/etc/profile
      • 让shell变量输出为环境变量: export A=100
      • 让 /etc/profile 文件生效: source 配置文件
      • 使用环境变量: $A
    • 获取命令的返回值

      • A= `ls -al`
      • A=$(ls -al)
    • 获取位置参数

      • 如 ./variable.sh 10 20
        • $n (n为数字, $0 表示命令本身,$1-$9代表参数, 十以上要用 ${10}、${11}...)
        • $* (代表命令行中的所有参数,但是看成一个整体)
        • $@ (代表命令行中的所有参数,但是看成一个参数组)
        • $# (代表命令行中所有参数的个数)
    • 预定义变量

      • $$ 当前进程的进程号
      • $! 后台运行的最后一个进程号
      • $? 最后一次执行的命令的返回状态.如果这个变量的值为0 , 则证明上一个命令正确执行.如果非0 (具体是哪个值,由命令自己决定) 则证明上一个命令执行不正确.
    • 运算符

      • 基本式:
        • $((运算式不能有空格))
        • $[运算式不能有空格]
        • expr 加空格的运算符的运算式 如 expr m + n
        • * 乘 /除 %取余
    • 条件判断

      • 基本语法:
        • [ 条件 ] 条件前后要有空格
        • 非空返回true
        • 注意如果有 && || 等 多个条件综合判断的话. 要使用 [ 条件 ] || [ 条件 ] 格式
      • 常用判断条件(判断条件前后要有空格)
        • = 字符串比较
        • -lt 小于
        • -le 小于等于
        • -eq 等于
        • -gt 大于
        • -ge 大于等于
        • -ne 不等于
      • 按照文件权限进行判断(如[ -r 文件 ])
        • -r 有读的权限
        • -w 有写的权限
        • -x 有执行的权限
      • 文件类型判断
        • -f 文件存在且是一个常规的文件
        • -e 文件存在
        • -d 文件存在并且是个目录
    • 流程控制

      • 基本语法:
        • if:
          • if [ 条件 ]
            then
            程序
            elif [ 条件 ]
            then
            程序
            fi
        • case:
          • case 变量 in
            "值1")
            如果变量的值等于值1, 则执行程序1
            ;;
            "值2")
            如果变量的值等于值2, 则执行程序2
            ;;
            "*")
            默认执行此程序
            ;;
            esac
        • for:
          • 第一种
            • for 变量 in 值1 值2 值3..
              do
              程序
              done
          • 第二种
            • for(( 初始值;循环控制条件;变量变化 ))
              do
              程序
              done
            • 如:


              for循环例子
        • while:
          • while[ 条件 ]
            do
            程序
            done
        • 读取控制台输入read
          • 基本语法
            • read [选项] [参数]
          • 选项:
            • -p : 指定读取值时的提示符
            • -t : 指定读取值时等待的时间(秒), 如果过了这个时间,就不再等待
          • 参数
            • 变量: 指定读取值给哪个变量存储
          • 实例:


            read例子
        • 函数
          • 系统函数
            • basename 基本语法
            • 返回完整路径最后 / 的部分, 常用于获取文件名
            • basename [pathname] [suffix]
            • basename [string] [suffix]
            • suffix 被指定后,会将去掉最后suffix部分
            • 实例:


              basename实例
        • dirname 基本语法
          • 返回完整路径 / 的前面的部分,常用于获取文件路径
          • dirname 文件的决定路径
          • 实例:


            dirname实例
        • 自定义函数
          • 基本语法:
            • function XXX(){
              逻辑
              }
          • 如果需要传递参数,一般使用read命令
          • 调用
            • XXX $n1 $n2
          • 实例


            自定义函数实例

相关文章

  • day 28

    shell编程基础 shell编程一小时光速入门web集群架构会用到shell编程基础 1、为什么要学shell编...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

  • day28-Shell脚本基础

    SHELL编程基础 三小时光速入门因为集群架构会用到shell编程基础,提前讲一丢丢。 shell编程 1. 为什...

  • <<编程基础-语言Python.Shell>&

    <<编程基础-语言Python.Shell>>

  • day28-2019年4月9日

    shell编程基础 1、为什么要学shell编程? linux系统中会大量得使用shell,工作中也需要...

  • day51 课堂笔记(shell编程规范书写)

    第一章、为什么要学shell? 1.1、学好shell编程所需的Linux基础 1.2、如何才能学好shell编程...

  • Shell编程基础知识

    关于shell编程基础: 1.为什么要学习shell编程? Linux系统中会大量的使用Shell,工作中我们也需...

  • shell编程-shell编程基础

    1.什么是shell shell是介于用户和操作系统之间的一个接口,用来接收用户的键盘输入,并分析和执行输入字符串...

  • linux基础(五)

    过程式编程:以指令为中心 对象式编程:以数据为中心 bash基础特性 shell 编程:过程式,解释执行shell...

  • BigData~01:Shell

    Shell编程基础 内容大纲 一、Shell编程二、高级文本处理命令:sed、awk、cut三、crontab定时...

网友评论

      本文标题:shell编程基础

      本文链接:https://www.haomeiwen.com/subject/ypjjgftx.html