• Linux——shell脚本


    变量

    变量命名规范

    • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
    • 中间不能有空格,可以使用下划线_
    • 不能使用标点符号
    • 不能使用bash里的关键字

    变量类型

    字符串

    [root@localhost ~]# name=zhangsan
    

    字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

    单引号

    单引号的限制:

    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
    • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
    [root@localhost /]# str=10
    [root@localhost /]# echo '$str'
    $str
    
    

    双引号

    双引号优点:

    • 双引号里可以有变量
    • 双引号里可以出现转义字符
    [root@localhost /]# str='hello world'
    [root@localhost /]# str1="print "$str"!"
    [root@localhost /]# echo $str1
    print "hello world"!
    
    

    数值

    • 整型
    • 浮点型
    [root@localhost ~]# age=30             整型
    [root@localhost ~]# length=10.3536     浮点型
    

    布尔型

    [root@localhost ~]# is_right=True
    [root@localhost ~]# is_right=False
    

    变量操作

    定义变量

    注:变量名=变量值,不允许存在空格.

    [root@localhost /]# num1=10
    
    

    引用变量

    引用一个定义过的变量,只要在变量名前面加美元号即可

    [root@localhost /]# echo $num1
    10
    

    撤销变量

    命令格式:unset 变量名

    [root@localhost /]# unset num1
    [root@localhost /]# echo $num1
    

    bash变量的类型

    环境变量(export)

    所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

    Bash常见系统内置环境变量

    变量名 含义
    PATH 命令存放路径
    SHELL 当前用户的shell
    UID 当前用户的uid
    HISTSIZE history的历史长度
    HOME 当前用户的家目录
    PWD 当前位置
    HISTFILE 当前用户history存放位置
    PS1 命令提示符的样式

    本地变量(局部变量local)

    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    位置变量

    当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量.

    $n (n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数)
    $* (这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
    $@(这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
    $#(这个变量代表命令行中所有参数的个数)

    特殊变量(Bash内置的,用来保存某些特殊数据的变量,也称系统变量)

    符号 含义
    $# 传给脚本的参数的个数
    $0 脚本自身的名字(特殊的位置参数)
    $! shell最后运行的后台进程的PID
    $@ 传给脚本的所有参数的列表
    $* 传给脚本的所有参数的列表
    $$ 当前进程的PID
    $? 返回状态(在脚本中默认显示的最后一条命令是否执行成功)

    只读变量(常量)

    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变

    [root@localhost /]# readonly str=hello
    [root@localhost /]# str=3
    -bash: str: readonly variable           提示变量是只读的,无法进行更改
    
  • 相关阅读:
    c语言分解字符串strtok函数使用
    C语言strchr使用之Next查找和截断想要的字符串
    C语言的字符串和理解和string c库函数使用
    C语言中snprintf sprintf 使用和sizeof和strlen的区别和puts的使用
    C语言中memchr和strchr和strlen函数使用
    万物归一
    c语言中sprintf函数的使用
    t分布|F分布|点估计与区间估计联系|
    列表分析|卡方检验|适应性检验|独立性检验|
    参数估计|无偏性|有效性|一致性|
  • 原文地址:https://www.cnblogs.com/sawyer95/p/13731326.html
Copyright © 2020-2023  润新知