种类
- 用户自定义变量
- 环境变量 保存和系统操作环境相关的的数据 //建议大写,便于区分
- 位置变量 脚本当中传递参数或数据,变量名不能自定义,变量作用固定
- 预定义变量 bash中预定义好的变量,变量名不能自定义,变量作用也是固定
用户自定义变量 -本地变量,用户任意设置,只在当前的shell生效
- 调用 echo $name
- 查看 set 查看所有
- 删除 unset $name
环境变量 - 会在当前shell 和子shell 生效,写入配置文件,shell打开新终端,会在所有shell生效
- 声明 export 变量名 = 变量值
- 声明已有变量 export 变量名
- 查看 env
- 删除 unset 变量名
位置变量
- $n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十个以上的参数用大括号包含如,${10}。
- $* 代表命令中的所有参数,$*把所有的参数看成一个整体
- $@ 代表命令中的所有参数,不过是把参数看成一个个个体对待
- $# 代表命令行中的所有参数的个数
脚本一
#!/bin/bash
echo $0
echo $1
echo $2
输出结果如下 -- 运行脚本,chmod 755 赋予运行权限
脚本二
#!/bin/bash
sum=$(($1+$2))
echo "sum is $sum"
输出结果
脚本三
#!/bin/bash
echo $# #输出参数个数
for i in "$*" # 输出整体
do
echo "the prarm is $i"
done
for y in "$@" #一个个输出
do
echo "the param is $y"
done
输出结果
预定义变量
- $? 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则上个命令未正确执行
- $$ 当前进程的进程号
- $! 后台运行的最后一个进程的进程号pid
接受键盘输入
- read [选项] [变量名]
- -p "提示信息 " 在等待read输入时,显示提示信息
- -t 秒数 read 命令会一直等待用户输入,使用此选项可以指定等待时间
- -n 字符数 read只接受指定字符数就会执行
- -s 隐藏输入的数据,用于机密信息的输入
#!/bin/bash
read -t 30 -p "input something:" name
echo $name
运算符
declare 声明变量的类型
- declare +/- [选项] 变量名
- 给变量设定类型属性
- 给变量取消类型属性
- -i 将变量声明为整形
- -x 将变量声明为环境变量
- -p 显示指定变量的被声明类型
网友评论