• shell变量与字符串操作


    默认情况下,Bash shell是一种无类型的脚步语言,除非用declare特别声明,否则它不会区分一个变量是整数变量、浮点数变量还是字符串变量。在Bash shell中所有的变量都被看成是字符串,使用时也不需要进行声明。

    1、变量的命名

    bash shell中变量的命名规则和C语言相同,必须是由英文字母、数字及下划线组成,第一个字符必须是字母或下划线,变量的长度没有限制,但英文字母区分大小写。虽然,bash shell中使用变量时不需要声明,但还是提倡对一些重要的变量进行声明、添加注释,以便阅读和维护。声明或创建一个变量之后,它的作用域是当前shell,子shell无法获取父shell中定义的变量,除非该变量时环境变量。

    2、设定变量

    在bash shell中要设置某个变量的值是很容易的,只需要按照:

    变量名称=值

    的方式即可改变某个变量的值,需要注意的是等号的两边是不能有空格的,若值中含有空格的话,需要用引号括起来。

    3、获取变量值

    要获取某个变量的值只需要在该变量的名称前面加上$或用${}将变量括起来即可。

    # echo $PATH

    # echo ${PATH}

    4、取消与清空变量

    当你不再需要某个变量时,你可能想取消该变量,即将该变量从当前名字空间中删除并释放该变量所占用的内存。在bash shell中可以用unset命令来取消某个变量。用法如下:

    unset 变量名称 或 unset -v 变量名称

    -v表示取消变量,unset除了可以用来取消变量外,还可以用来取消函数,用unset来取消函数时,用法如下:

    unset -f 函数名称

    使用unset以后,变量就不复存在了,这可能并不是你想要的,你可能只是想将清除该变量中的值,使其为null,即清空变量,清空变量的操作如下:

    变量名称=

    5、环境变量

    只有当一个变量成为环境变量时,它才能为子shell所用,为了使一个变量成为环境变量,需要使用export命令,具体如下:

    变量名称="xxxx"

    export 变量名称 

    export 变量名称="xxxx"

    除了使用export之后,还可以在声明的时候就将变量指定为环境变量,如下:

    declare -x 变量名称

    6、bash的内置变量

    除了环境变量和用户自定义的变量之外,bash shell中还会用到很多的内置变量,下面介绍一些常用的内置变量。

    BASH -- bash的完整路径,通常是/bin/bash

    BASH_VERSION -- bash的版本

    BASH_ENV -- 在非交互模式下,会先检查$BASH_ENV是否有指定的启动文件,如果有则先执行它

    ENV -- 与BASH_ENV类似,不过是在POSIX模式下,会先检查$ENV是否有指定的启动文件,如果有则先执行它

    CDPATH -- cd命令的搜索路径

    PATH -- 命令的搜索路径

    EUID -- 有效的用户id

    FUNCNAME -- 在函数执行期间,即为函数的自身的名称

    HOSTNAME -- 主机名

    HOSTTYPE -- 主机类型,如i386

    OSTYPE -- 执行bash的操作系统类型,如linux-gnu

    HOME -- 用户主目录

    IFS  --  默认的字段分隔符

    OPTARG -- 使用getopts处理选项时,取得的选项的参数

    OPTIND -- 使用getopts处理选项时,选项的索引值

    OPTERR -- 若将OPTERR设置为1,则getopts发生错误,输出错误信息

    $1~$n -- 位置参数,即传入程序或函数的参数,$1即第一个参数,$2为第二个参数,其他类推

    $* --   所有的位置参数,并将其看成一个字符串,如”test.sh abc 123“,则$*为”abc 123“

    $@ --  所有的位置参数,并将其看成一个字符串数组,如”test.sh abc 123“,则$*为”abc 123“

    $# --  位置参数的个数

    $? --  上一条命令执行结束后的返回值

    $$ --  当前bash shell的进程号

    $! --  上一个后台程序的进程号

    7、调整变量的属性

    declare命令不仅可以用来声明变量,还可以用来调整变量的属性,具体用法如下:

    -p  显示变量的属性

    -a  变量是一个数组

    -i   变量是一个整数

    -r  变量为只读的

    -x  变量为环境变量

  • 相关阅读:
    HTML5——WEB存储学习笔记
    show()与showDialog()的区别
    如何为winform程序打包(图解)
    Winform打包程序制作的快捷方式指向错误的位置(指向安装包文件)
    HTML5 ——range学习笔记
    引用 Eclipse异常退出的解决办法
    sql查询数据库中所有包含要查询内容的存储过程、视图等
    sql查询数据库中所有包含要查询内容的存储过程、驶入
    SQL Union和SQL Union All用法
    sql查询数据库所有表(select * from sysobjects )
  • 原文地址:https://www.cnblogs.com/ssc4469/p/3997362.html
Copyright © 2020-2023  润新知