变量
命名规则
- 变量名可以由字母、数字或者下划线组成
- 并且只能以字母或者下划线开头
- 可以使用任意长度的字符串来作为变量名
变量类型
-
Shell是一种动态类型语言和弱类型语言
-
变量的数据类型无需声明,变量的数据类型会根据不同的操作有所变化
-
Shell中的变量统一地按照字符串存储。根据变量的上下文环境,允许程序执行一些不同的操作
定义变量
- 变量名=变量值(等号左右不能有空格)
- 作用范围:仅在当前shell中有效,当前shell的子shell中也没有
#!/bin/bash
#定义变量
a=1
b="hello"
c="hello world"
#定义备份路径
bak_dir=/data/backup
变量赋值
直接赋值
- a=111
使用位置参数
- 位置参数
使用命令输出
- ``命令
- $(命令)
user=`wc -w /`
user=$(wc -w /)
read
read | 选项 | 参数 | 作用 |
---|---|---|---|
变量 | 改变变量的值 | ||
-p |
变量 | “提示语句” | |
-n 数字 |
变量 | 设定字符限制,字符数达到限制时自动退出 输入的数据赋值给变量 |
|
-t |
变量 | 计时输入,需要在规定时间内输入,返回0状态 当计时满时,返回非零退出状态,向变量返回空 |
|
-s |
变量 | 关闭回显 -s选项能够使read命令中输入的数据不显示在监视器上 实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色 |
read v1
read -n1 -s10 -p "please input" v1
从文件读取
- 出了循环则变量的值为空
while read user
do
echo $user
done < user.lst
引用变量
$变量名
${变量名}
#引用变量
echo $a #1
echo ${a} #1
echo $a1 #未定义