zoukankan      html  css  js  c++  java
  • (2)、shell编程之变量

    变量:可以变化的量

    变量可以由数字、字母、下划线组成,但不可以以数字开头

    在shell里变量默认类型都是字符串,如果要进行运算,必须要指定变量类型为数值型;调用变量在变量名前加上$号即可($ 变量名)。

    变量赋值用“=”连接,且等号左右两边不能存在空格,如果变量值中有空格需要用单引或者双引号包括

    在变量值中,可以使用“\”转义符。

    [root@CAT ~]# a=3                 #把3赋值给变量a
    [root@CAT ~]# echo $a
    3

    如果需要增加变量的值,则可以进行变量值叠加,不过变量需要用双引号包括 "$变量名"或${变量名},类似于 ">>" 追加

    [root@CAT ~]# a="$a"45
    [root@CAT ~]# echo $a
    345
    或
    [root@CAT ~]# a=${a}678
    [root@CAT ~]# echo $a
    345678

    如果要把命令的结果作为变量值赋予变量,则需要只用反引号或$()包括:

    [root@CAT ~]# a=$(date) 
    [root@CAT ~]# echo $a
    2021年 04月 26日 星期一 10:40:50 CST

    变量分类:

    类型 定义 名称自定义 作用自定义 内容自定义
    用户自定义变量 由用户自定义名和值的变量
    用户自定义环境变量 主要用来保存和系统环境相关的数据
    系统自带环境变量
    位置参数变量 主要用来向脚本当中传递参数或数据
    预定义变量 在Bash中已经定义好的变量

    用户自定义变量使用规则

    赋值 变量名=值
    调用 $变量名
    查看

    set [选项] 

    -u:设定此选项后,调用未声明的变量时会报错(默认无提示,仅临时生效)

    不加任何选项,将会列出当前系统所有变量

    删除 unset 变量名
    更改 直接覆盖

     

    环境变量使用规则

    定义 export 变量名=值      #定义环境变量时一般使用大写变量名,为了区分,这也是程序员默认熟成的规则
    用户自定义环境变量时需要用export声明
    调用 $变量名
    查看 env 查看所有的环境变量
    删除 unset 变量名
    更改 直接覆盖

    常见的环境变量:

    PATH:系统查找命令的路径

    PS1:定义命令提示符

    LANG:定义Linux系统的主语系环境

    位置参数变量

    变量名 作用
    $n

    n为数字,$0代表命令本身,$1-$9 代表1-9个参数,10及以上的参数需要用{}包括,eg:${10}

    $* 代表命令中所有参数,$*把所有参数看成是一个整体
    $@ 代表命令中所有参数,$@把所有参数区分对待
    $# 代表命令行中所有参数的个数

    预定义变量

    变量名 作用
    $? 捕获最后一次执行命令的返回值,若为0则证明命令执行成功,若为非0数值,则证明命令执行失败
    $$ 当前进程的PID
    $! 后台运行的最后一个进程的PID

    键盘的输入(交互式shell):

    # read [选项] [变量名]

    选项 意义
    -p "提示信息" 等待输入时,输出的提升信息
    -t秒数 等待用户输入的时长,超时退出,若不加则一直等待
    -n字符数 字符数,read只接受指定的字符数
    -s 隐藏输入的数据,用于保密类信息输入
  • 相关阅读:
    [LeetCode] Sort Colors
    [LeetCode] Trapping Rain Water
    [LeetCode] Sudoku Solver
    [LeetCode] Valid Sudoku
    [LeetCode] Candy
    [LeetCode] Permutation Sequence
    [名词解释]Constant Amortized Time
    回溯法 子集树和排序树
    HDU 4859 海岸线 最小割
    敏捷开发一千零一问:怎样处理重要但不明白的任务?
  • 原文地址:https://www.cnblogs.com/BrotherCat/p/14703984.html
Copyright © 2011-2022 走看看