什么是变量?
- 可以变化的量
- 变量必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成
- 变量名的长度不得超过255个字符
- 变量名在有效范围内必须唯一
- 变量默认类型都是字符串
演示一下定义变量和引用变量的过程1
2
3
4
5
6
7
8[root@localhost ~]# name=张三
[root@localhost ~]# echo $name
张三
[root@localhost ~]# echo "$name"11
张三11
[root@localhost ~]# echo "${name}"11
张三11
[root@localhost ~]#
两种变量
- 环境变量是全局变量,而自定义变量是局部变量
- 自定义变量会在当前的shell中生效,而环境变量会在当前shell以及其子shell中生效
通过env
查看环境变量,export 变量名=变量值
这样设置环境变量,$PATH
查看环境变量1
2[root@localhost myshell]# echo $PATH
/root/.nvm/versions/node/v11.14.0/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_211/bin:/root/bin
如果想把一个自定义的脚本直接可以执行hello.sh
,或者把这个文件拷贝到目标目录下/root/bin
,或者把脚本所在目录添加到环境变量中的PATH路径中
默认是不可以直接在命令行输入hello.sh
的,只有添加之后才可以执行。1
2
3// /root/myshell
#!/bin/bash
echo hello
记得要把文件权限修改成可执行的权限。1
2export PATH="$PATH":/root/myshell 临时生效
hello.sh
预定义变量:是脚本中已经定义好的变量,$$
当前进程的进程号(PID)
read
从键盘读取变量值,read [选项] [变量名]
1
2
3// 选项
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)。
案例演示1
2
3#!/bin/bash
read -p '请输入一个数字' -t 5 name
echo "您输入的数字是$name"