• Linux shell 编写(2)


    shell脚本中变量的定义和使用:

      1.shell中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个字符。

      2.通过赋值符号"="来定义一个变量

        如:myname='galley'  #字符串类型,不解析任何字符

          courses="abcdef"  #双引号内部会解析$和反斜杠特殊字符

          sum=100;price=1.25

          now_date=`date`  #反引号执行系统命令

              shell中的变量只有字符串类型,所以当你不用引号引起来的时候要保证变量的值不包含特殊符号,如空格,美元,&

      3.变量的引用,适用美元符号$加变量名,来引用一个变量的值

        如: 定义变量:programe_name="http"

          引用变量:echo $programe_name

          或者    echo{$programe_name}

      4.变量名外面的花括号

        是可选的,加花括号是为了帮助解释器识别变量的边界,比如下面情况:

          #!/bin/bash

          for skill in pop java linux db2

            do

              echo "i  am good at  ${skill}Script" #帮助shell解释器识别边界值

            done

    shell环境变量,局部变量以及预定义变量:

      环境变量的定义:

        一般指操作系统中运行环境的一些参数,如PATH,PWD,USER,当前使用$shell名称等

      常见的环境变量:

        PATH:系统路径

        HOME:当前用户目录

        HISTSIZE:保存历史命令记录的条数

        LOGNAME:当前用户登录名

        HOSTNAME:主机名称,若应用程序要用到主机名的话,一般是从这个环境变量中取得的

        SHELL:当前用户用的是哪种shell

        LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量

        MAIL:当前用户邮件存放目录

      查看环境变量:

        env:显示所有环境变量

        echo $PATH:显示某一个环境变量的值

      局部变量包括:

        1.在shell脚本中由用户自定义的变量

           shell脚本中定义的变量作用域是从被定义的地方开始,到shell结束为止,起作用域为本脚本,离开脚本,变量无效

        2.在用户登录的shell中定义的变量,重新登录后该变量消失

      预定义变量:

        预定义变量和环境变量类似,也是shell一开始就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重新定义它,所有预定义变量都是由$符号和另一个符号组成的,常用的shell预定义变量有:

        ·$# 位置参数变量

        ·$* 所有位置参数内容

        ·$?命令执行后的返回状态。   #0 表示成功,非0表示失败。

        ·$$ 当前进程的进程号

        ·$!后台运行的最后一个进程号。   很少用 了解即可

        ·$0 当前执行的进程名

    变量的输入和输出:

      1.echo 命令发送数据到标准输出设备,数据采用的是字符串的方式,echo命令可以输出一个变量。

        

      2.echo 两个重要的参数

        -e    # 识别输出内容里的转义序列

        

        -n   #忽略结尾的换行

        

      3.printf和echo的功能类似,printf也可以输出变量,printf还可以按照格式输出变量

        注意的是:

          1)printf的默认是没有换行的,换行需要自己添加“ ”

            

          2)printf支持格式化输出

            

       read输入:read命令读取标准输入设备的下一行,标准输入中的第一行到换行符前的所有字符都会被读取,并赋值给对应的变量。

            可以结合echo一起实现读取并输出的功能

            

            1.1.1.1为键盘输入。

  • 相关阅读:
    Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
    JS使用Cookie
    vue2 生命周期
    vue2 手记
    vue2 design 手记
    composer.json详解
    mysql查询优化
    dockerfile
    一套不错的docker lnmp
    服务器部署docker lnmp环境
  • 原文地址:https://www.cnblogs.com/fishperson/p/10447588.html
Copyright © 2020-2023  润新知