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]
- 支持的运算符 数值越高优先级越高
- declare声明变量类型
-
变量测试和值替换