变量:
变量由字母、数字、_ 组成,不能以数字开头
长度不能超过255个字符
在bash中,变量的默认类型是字符串类型
变量分类:
1、用户自定义变量:只在当前shell生效,是局部变量
定义方法: 变量名=变量值 #等号两边没有空格
调用方法: $变量名
变量查看: set命令查看所有变量 选项: -u #如果设定此选项,调用未声明变量是时会报错(默认无提示)
删除变量: unset 变量名
变量叠加: x=${x}test 或 x="$x"test
2、环境变量:这种变量中主要保存和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的,在当前shell和子shell中生效,是全局变量
定义方法: 环境变量名建议大写
export 变量名=变量值
或 变量名=变量值 ; export 变量名
查看方法: env查看环境变量
删除: 只能在创建变量的shell中删除
常用环境变量:
HOSTNAME 主机名
SHELL 当前shell
TERM 终端环境
HISTSIZE 历史命令条数
SSH_CLIENT 记录ssh客户端ip
SSH_TTY ssh连接的终端
USER 当前登陆用户
PATH 系统搜索命令的路径
3、位置参数变量:预定义变量的一种,主要是用来向脚本当中传递参数或数据的(实际上常用read命令来代替,后文有提),变量名不能自定义,变量作用固定
$n写在脚本中,作用是把数据传入脚本,如:/root/calcu.sh 32 13 ,其中$0就代表/root/calcu.sh,32就代表$1,13就代表$2
4、预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
$$最近进程的进程号
接收键盘输入
- read 【选项】【变量名】 #多用于脚本中接收用户输入
选项:
-p "提示信息" #在等待read输入时,输出此提示信息
-t 秒数 #read命令会一直等待用户输入,此选项可以指定等待时间
-n 字符数 #read命令只接收指定的字符数,收到后自动执行
-s #隐藏输入的数据,适用于机密数据的输入