bash 的变量 所属shell基础
1 用户自定义变量
2 环境变量
3 预定义变量
4 数值运算运算符
变量规则
1 非字符开头
2 默认变量类型都是字符串
3 变量用=号连接,不能有空格 两端
4 变量数值有空格 用引号括上
5 变量值可以使用转义符\
6 变量叠加 “$()” ${}
7 命令值 可以赋值 $() 或者 ``反引号
8 环境变量建议大写
变量分类
1 用户自定义变量
2 环境变量: 操作系统环境相关的数据,可以自己添加
3 位置参数变量:想脚步传递参数或数据 变量名不能自定义 变量的作用也是固定的
4 预定义变量:是bash中已经定义好的变量,变量名不能自定义,作用也是固定的
就是可以修改数值 3、4
本地变量 ~= 用户自定义变量
1 变量定义 name="li jing shan"
2 变量叠加
aa=123
aa="$aa"456 //方式1
aa=${aa}789 // 方式2
变量查看 set
删除变量 unset name
bash 变量
用户自定义变量 仅在当前变量中生效
2 设置环境变量
export 变量名=变量值
如何定义子shell 可以直接用bash 进行定义
pstree 进程树
env 查询变量环境变量
unset 变量名 删除变量
3 PSI PATH 命令 最常用
系统查找命令路径
hello word
PATH 系统查找命令路径
PATH="$PATH":/root 临时生效
PSI 提示符 系统提示符变量
\d: 显示日期,格式为“星期 月 日”
\h: 显示简写主机名
\t
位置参数变量
$n n为数字, $0 代表命令本身, $1-$9代表第一到第九个参数。 10以上的 用 ${10}
$* 命令行中的所有参数,整体对待
$@ 命令行中的所有参数,区分对待
$# 命令行中所有参数的个数
$(()) 才能进行加法
var_dump(test(18,7))
exit;
function test($x,$y){
if($x<=0 || $y<=0) return 1;
return 2*test($x-6,$y/2);
}
int(8)
预定义变量:
$? 最后一次执行的命令的返回状态,如果这个变量为0,证明上一个命令正确执行,如果这个变量的值为非0(具体是那个数字,由命令自己来决定),则证明上一个命令执行不正确
$$ 当前进程的进程号 (PID)
$! 后台运行的最后一个进程的进程号(PID)
[root@bogon ~]# find /root -name hello.sh & 其中&代表后台执行
2 接收键盘输入
[root@localhost~]read [选项] [变量名]
选项:
-p "提示信息" :在等待read输入时,输出提示信息
-t 秒数 read 命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数 read 命令只接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于机密信息的输入
数值运算 运算符
1 declare 声明变量类型
[root@localhost~]#date [+/-] [选项] 变量名
选项:
-: 给变量设定类型属性
+: 取消变量的类型属性
-i: 将变量声明为整数型 (integer)
-x: 将变量声明为环境变量 类似于:export 声明为环境变量 export aa 相似于 declare -x aa
-p: 显示指定变量的被声明的类型
方式1
aa=11
bb=22
declare -i cc=$aa+$bb
方式2
exper 或let 数值运算工具 [root@bogon ~]# dd=$(expr $aa+$bb)
方式3
$(($a+$b)) 或者 $[] 推荐3方法
运算符 跟通用类型, 优先级不一样
变量测试 与内容替换。
转载于:https://blog.51cto.com/jingshanls/1687445