shell变量

理解父与子shell?能干什么 明确父子shell作用域,要是不知道变量不知在哪个,执行肯定不对
单引号不能识别特殊语法
双引号能识别特殊语法
每次调用bash/shell解释器执行脚本,都会开启一个子shell,因此不保留当前的shell变量,通过pstree命令检查进程树
父外层
子内层
linux命令
在linux中反引号,中的命令执行结果会被保留下来
调用source或者点符号是在当前shell环境加载脚本,因此保留变量。
pstree
环境变量 也成全局变量 能找出你的linux服务器上,各种变量
环境变量一般指的是用export内置命令导出的变量,用于定义shell的运行环境

shell通过环境变量确定登录的用户名,PATH路劲,文件系统等各种应用
环境变量可以在命令行中临时创建,但是用户退出shell终端,变量即丢失,若永久生效,需要修改环境变量配置文件。
每个用户都有自己的环境变量配置文件,~/.bash_profile ~/.bashrc,且以个人配置文件,优先加载变量,读取,以个人的优先生效。
当你要给所有用户都是用某个变量,写入全局即可/etc/profile

数组:
普通数组:只能使用整数作为数组索引(元素的下标)
关联数组:可以使用字符串作为数组索引

变量分类:
本地变量:临时变量;针对当前用户的当前进程生效;变量名=变量值
环境变量:将本地变量(临时变量)用export导出:export A = hello
当前用户进程以及子进程生效
export PATH=$PATH:/usr/local/mysql/bin (临时生效)
/etc/profile 和~/bash._profile
环境变量永久生效:修改/etc/profile (针对系统所有用户所有进程生效)
修改用户家目录 ~/.bash_profile (针对当前用户生效)
配置文件bashrc:定义别名,umask,函数;全局/etc/bashrc(系统中所有用户的bash信息配置)
局部用户家目录里~/.bashrc(当前用户的bash信息配置)

变量定义
shell中变量不分类型
变量名=变量值
等号量变不能有任何空格
变量名严格区分大小写
变量定义
有类型变量 declare-i/-r/-x/-a/-A
交互式定义变量 read[-p/-n/-t/-s] 变量名
数组定义
普通数组:元素的索引下标是整数
关联数组元素的索引下标是字符串
定义数组
array1[索引下标]=元素1
array2=([索引下标]=元素1 [索引下标]=元素2…)
变量获取
echo $变量名
echo ${变量名}

检查系统环境变量
set 打印所有的变量 全局和局部
set命令能找的哦啊当前shell环境中的所有变量,以及包括局部变量(shell脚本局部定义的变量)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值