什么是变量
- 变量是计算机内存的单元,其中存放的值可以改变
- 变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此他们十分有用
在Bash中,变量的默认类型都是字符串,跟其他的编程语言都不一样
变量的分类
- 用户自定义变量
- 环境变量:这种变量主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
- 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
- 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
变量的定义
- 变量名=变量值
- 变量名不能数字为开头
- 变量值里面有空格的话用双引号括起来
- = 左右两边不能有空格
x=5
name="jie cao"
变量的调用
echo $变量名
echo $x
echo $name
y=6
z=$x+$y
echo $z //5+6
变量的叠加
x=123
x="$x"123
echo $x //123123
x=${x}123
echo $x //123123123
变量的查看
set
- 选项:
-u 如果设定此选项,调用未声明变量时会报错(默认无任何提示)
变量的删除
unset 变量名(变量名前面不要加$)
bash环境变量
-
环境变量与用户自定义变量的区别
- 环境变量是全局变量,用户自定义变量是局部变量,用户自定义变量只在当前的shell中生效,环境变量在当前shell和这个shell的所有子shell中生效
-
对系统生效的环境变量名和变量作用是固定的
设置环境变量
export 变量名=变量值
或
变量名=变量值
export 变量名
查看环境变量
- set 查看所有变量
- env 查看环境变量
删除环境变量
unset 变量名
常用的环境变量
- HOSTNAME:主机名
- SHELL:当前的shell
- TERM:终端环境
- HISTSIZE:历史命令条数
- SSH_CLIENT:当前操作环境用ssh连接的,这里记录客户端ip
- SSH_TTY:ssh链接的终端时pts/1
- USER:当前登陆的用户
PATH环境变量
- PATH变量:系统查找命令的路径
- 查看PATH环境变量:echo $PATH
- 增加PATH变量的值 PATH = "$PATH":/root/sh
位置参数变量
- ($0代表命令本身)
- ($1-$9代表第一到第九个参数)
- (十个以上的参数需要用大括号包含,如${10})
- (
*把所有的参数看成一个整体)
- (
@把每个参数区分对待)
- ($# 这个变量代表命令行中所有参数的个数)
预定义变量
- ($? 最后一次执行命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了)
- (? 当前进程的进程号(PID))
- ($! 后台运行的最后一个进程的进程号(PID))
例如
ls && echo yes ls执行结果为0后面执行
ls || echo no ls执行结果不为0后面执行
接受键盘输入
read [选项] [变量名]
- -p 提示信息:在等待read输入时,输出提示信息
- -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
- -n 字符数:read命令只接受指定的字符数,就会执行
- -s 隐藏输入的数据,适用于手机密码信息的输入