目录
一 用户自定义变量
1.1 用户自定义变量
1.2 变量设置规则
-
对比java命名规则:
变量名以字母、下划线或者$
开头,不能以数字开头,后面跟字母、下划线、美元符、数字,变量名对大小写敏感,无长度限制 -
默认字符类型
也是字符串类型
,和一般编程语言不一样
实践
[root@zhuyc ~]# name=zyc
[root@zhuyc ~]# echo name
name
[root@zhuyc ~]# echo $name
zyc
[root@zhuyc ~]#
1.3 变量分类
从实质上说:位置参数变量是预定义变量中的一种
1.4 本地变量
二 环境变量
2.1 定义
对比自定义变量
自定义变量只在当前shell中有效
查看所在哪个shell
我们在命令行敲bash就是进入了子shell
,查看所在哪个shell,用pstree
2.2 设置环境变量
export的效力仅限于该次登陆操作
。
2.3 常见环境变量
PATH
冒号分隔
也就是前一篇位置别名小节中的第四顺序
PS1
严格来说:PS1不是环境变量,env命令
看不到;只能用set
命令看到
上面什么意思呢?
[root@zhuyc ~]# echo $PS1
[\u@\h \W]\$
[root@zhuyc ~]#
#一一对应
三 位置参数变量
实践
[root@zhuyc ~]# cd sh
[root@zhuyc sh]# vim param1.sh
[root@zhuyc sh]# chmod param1.sh 755
chmod: invalid mode: ‘param1.sh’
Try 'chmod --help' for more information.
[root@zhuyc sh]# chmod 755 param1.sh
##脚本##
#!/bin/bash
echo $0
echo $1
echo $2
echo $4
*和#的区别
[root@zhuyc sh]# cat param2.sh SH
#!/bin/bash
for i in "$*"
do
echo $i
done
for t in "$@"
do
echo $t
done
cat: SH: No such file or directory
[root@zhuyc sh]# ./param2.sh
[root@zhuyc sh]# ./param2.sh 12 23 435 56
12 23 435 56
12
23
435
56
[root@zhuyc sh]#
四 预定义变量
4.1 实践
4.2 接收键盘输入-read
五 运算符
5.1声明变量类型
5.2 数值运算
方法1
[root@zhuyc sh]# aa=1
[root@zhuyc sh]# bb=2
[root@zhuyc sh]# declare -i cc1=$aa+$bb
[root@zhuyc sh]# echo $cc1
3
方法2
方法3
5.3 运算符
越大优先级越高
5.4 变量测试和替换
六 环境变量配置文件
6.1 简介
环境变量如果不写到文件中,那么只在本次连接中有效
source命令
让配置文件直接生效,不用重新登陆
常用的环境变量配置文件
大体有下面5类
带~表示每个用户独有的环境变量
读取配置文件的顺序
Linux登陆方式有login shell和non-login shell两种
6.2 其他配置文件
注销时生效的
历史命令
shell登陆信息
这个只对本地登陆生效