Linux---1.10.shell用户自定义变量、环境变量、位置参数变量、预定义变量


  • 用户自定义变量

    • Bash中所有的变量都是字符串类型
    • 变量用等号连接值 等号两侧不能有空格
    • 变量的值如果有空格 需要使用单引号或双引号
    • 变量的值中,可以使用\转义符
    • 如果需要增加变量的值 可以进行变量值的叠加 不过变量需要用双引号包括"$变量名"或${变量名}包含
    • 可以把命令的结果作为变量值赋予变量 需要使用反引号或者$()包含命令
    • 环境变量名建议大写 便于区分
  • 变量的分类

    • 用户自定义变量

      • 变量的叠加
        • aa="$aa"456
        • aa=${aa}789
      • set 查看变量的值
      • echo $变量名 调用变量
      • unset 变量名 删除变量
      • pstree 确定进程树 比如 csh bash pstree 依次键入 就会看到 sshd-sshd-bash-bash-pstree
      • 每输入一个shell即bash或者csh就会一个本地shell
      • env 专门查看变量的
    • 环境变量 保存的是和系统操作环境相关的数据

      • 用户自定义变量只在当前的shell生效 环境变量会在当前shell和这个shell的所有子shell当中生效。如果写入相应配置文件 那么这个环境变量就会在所有的shell中生效
      • 设置环境变量
        • 定义变量 export 变量名=变量值 写入了环境变量配置文件
      • 两个环境变量 PATH PS1
        • PATH 用冒号分割的一个一个路径
        • 自己写的脚本并不推荐放进path中 最好用变量累加的方式 PATH="$PATH":/root/sh 临时生效
        • PS1 定义系统提示符的变量 PS1='[\u@\h \t \w]$ ' 设定提示符 \w是当前路径
    • 位置参数变量 向脚本当中传递参数或数据 变量名不能自定义 变量作用固定的

    • 预定义变量 bash中定义好的变量 变量名不能定义 变量作用固定

      • 操作实例

        点击查看代码
          #!/bin/bash
          echo "the current process is $$" 
          # 输出当前进程的PID
          # 这个PID就是脚本执行时,生成的进程的PID
          find /root -name hello.sh &
          # 使用find命令在root目录下查找hello.sh文件
          # 符号&的意思是把命令放入后台执行 工作管理
          echo "The last one Daemon process is $!"
          
        
  • 接收键盘输入

    • read 【选项】【变量名】
    • -p 提示信息 等待read输入时,输出提示信息
    • -t 秒数 read命令会一直等待用户输入 使用此选项可以指定等待时间
    • -n 字符数 read命令只接收指定的字符数,就会执行
    • -s 隐藏输入的数据 适用于机密信息的输入
  • 数学运算和运算符

    • declare声明变量类型
      • declare 【+/-】【选项】变量名
      • 减号 给变量设定类型属性
      • 加号 取消变量的类型属性
      • -i 将变量声明为整数型
      • -x 将变量声明为环境变量
      • -p 显示指定变量的被声明的类型
    • 数值运算方法
      • declare -i cc=$aa+$bb 先给aa,bb赋值再执行
    • 运算方法2 用expr或let运算工具
      • dd = $(expr $aa + $bb) 运算符两侧空格不能省略
    • 运算方法3 $((运算式)) 或 $[运算式]
      • ee=$(($aa+$bb)) ff=$[$aa+$bb]
    • 支持的运算符 数值越高优先级越高
  • 变量测试和值替换

相关