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方法


运算符  跟通用类型, 优先级不一样



变量测试  与内容替换。