目录
Bash变量概述
shell与其他对比
总的来说,不管是PHP,还是java它是用来编写程序或者网站,java主要是用来实现后端程序的。而shell编程,他是一个脚本语言,他不需要执行编译再执行,他是编译过程放在执行过程中,所以,所以执行要慢得多,shell主要是帮助管理员简化操作的。
Bash变量以及变量分类
什么是变量
- 变量是计算机内存的单元,其中存放的值可以改变
- 变量让你能够把程序中准备使用的每一段数据都赋给一个简短的、易于记忆的名字,因此他们十分有用
变量命名规则
- 变量名必须以字母或者下划线打头,名字中间只能由字母、数字和下划线组成
- 变量名的字符不得超过255个字符
- 变量名在有效的范围内必须是唯一的
- 在Bash中,变量的默认类型是字符串类型
- 注意:
- 在任何系统中,目录名、文件名、变量名都要有含义的
变量按照存储数据分类
- 字符串型
- 整型
- 浮点型
- 日期型
变量分类
- 用户自定义变量:变量自定义的
- 环境变量:这种变量主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
- 位置参数变量(是预定义变量的一种):这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
- 预定义变量:是Bash已经定义好的变量,变量名不能自定义,变量作用是固定的
用户自定义变量
定义变量
- 变量名=变量值
变量调用
- echo $变量名
变量查看
- set
- 选项:
- -u:如果设定此选项,调用未声明的变量时会报错(默认无任何提示)
变量删除
- unset 变量名
环境变量
环境变量和用户自定义的区别
- 环境变量是全局变量(当前shell和这个shell的所有子shell中生效)
- 自定义变量是局部变量(只在当前shell生效)
- 对系统生效的环境变量名和变量作用是固定的
设置环境变量
- expor 变量名=变量值 或者 变量名=变量值 export 变量名
查看环境变量
-
set(#查看所有的变量)
-
env(#查看环境变量)
删除环境变量
- unset 变量名
常用的环境变量
- HOSTNAME:主机名
- SHELL:当前shell
- TERM:终端环境
- HISTSIZE:历史命令条数
- SSH_CLIENT:当前操作环境使用ssh连接的,这里记录客户端IP
- SSH_TTY:ssh连接的终端时pts/1
- USER:当前登陆的用户
PATH环境变量
- PATH变量:系统查找命令的路径
- echo $PATH(#查看PATH环境变量)
PS1环境变量
- PS1变量:命令提示符设置
- \d:显示日期,格式为“星期 月 日”
- \H:显示完整的主机名,
- \t:显示24小时制的时间,格式为“HH:MM:SS”
- \A:显示24小时制的时间,格式为“HH:MM”
- \u:显示当前用户名
- \w:显示当前所在目录的完整名称
- \W:显示当前所在目录的最后一个目录
- \$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”
当前语系查询
- locale (#查询当前系统语系)
- LANG:定义系统主语系变量
- LC_ALL:定义整体语系变量
语系变量LANG
- echo $LANG(#查看系统当前语系)
- locale -a | more(#查看Linux支持的所有语系)
查询系统默认语系
-
cat /etc/sysconfig/i18n
位置参数变量
位置参数变量如图
“$*”和“$@”的区别
- $*中的所有参数看成是一个整体
- $@中的每个参数都看成是独立的
预定义变量
预定义变量如图
接收键盘输入
- read【选项】【变量名】
- 选项:
- -p“提示信息”:在等待read输入时,输出提示信息
- -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
- -n 字符数:read命令只接收指定的字符数,就会执行
- -s:隐藏输入的数据,适用于机密的输入