Linux之shell变量学习

1.变量是什么?

变量是用来临时保存数据的,该数据是可以变化的数据

2.什么时候需要定义变量?
  • 某个内容需要多次使用,并且在代码中重复出现
  • 在代码运作的过程中,可能会把某些命令的执行结果保存起来,方便后续需要使用这些结果
3.变量如何定义?
变量名=变量值

变量名:用来临时保存数据的
变量值:就是临时的可变化的数据

4.变量的定义规则

a.变量名区分大小写
b.变量名不能有特殊符号(注意:对于有空格的字符串给变量赋值时,要用引号引起来)
c.变量名不能以数字开头(注意:不能以数字开头并不代表变量名中不能包含数字!)
d.等号两边不能有任何空格(这里和Python Java写法不一样)
e.变量名尽量做到见名知意(一般变量名使用大写)

5.变量的定义方式

1).基本方式

直接赋值给一个变量
在这里插入图片描述
说明: $变量名 和 ${变量名}的异同 相同点:都可以调用变量 不同点:${变量名}可以只截取变量的一部分,而$变量名 不可以

2).命令执行结果赋值给变量
在这里插入图片描述

3).交互式变量(read)
目的:让用户自己给变量赋值,比较灵活
语法:read [选项] 变量名
常见选项
-p : 定义提示用户的信息
-n : 定义字符数(限制变量值的长度)
-s : 不显示(不显示用户输入的内容,如输入密码等私密性的东西)
-t : 定义超时时间,默认单位为秒(限制用户输入变量值的超时时间)
在这里插入图片描述

在这里插入图片描述

4).定义有类型的变量(decla
目的:给变量做一些限制,固定变量的类型,比如:整形、只读
用法:declare 选项 变量名=变量值
常用选项:

-i : 将变量看成整数 declare -i A=123
-r : 定义只读变量 declare -r B=HELLO
-a : 定义普通数组;查看普通数组
-A : 定义关联数组;查看关联数组
-x : 将变量通过环境导出 declare -x AAA=123456 等于export AAA=123456

在这里插入图片描述

变量的分类

1).本地变量

  • 本地变量:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的子进程无效。

定义方式:变量名=变量值

查看进程父子关系:ps -auxf |grep bash
2).环境变量

  • 环境变量:当前进程有效,并且能够被子进程调用
    env 查看当前用户的环境变量
    set查询当前用户的所有变量(临时变量与环境变量)
    export 变量名=变量值 或者变量名=变量值; export 变量名

3).全局变量

  • 全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用。
  • 解读相关配置文件
    在这里插入图片描述
    说明:以上文件修改后,都需要重新source让其生效或者退出重新登录
  • 用户登录系统读取相关文件的顺序
  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bashrc
  • /etc/bashrc
  • $HOME/.bash_logout

4).系统变量

  • 系统变量(内置bash中变量):shell本身已经固定好了它的名字和作用.
    在这里插入图片描述
#!/bin/bash
#了解shell内置变量中的位置参数含义
echo "\$0 = $0"
echo "\$# = $#"
echo "\$* = $*"
echo "\$@ = $@"
echo "\$1 = $1" 
echo "\$2 = $2" 
echo "\$3 = $3" 
echo "\$11 = ${11}" 
echo "\$12 = ${12}" 

在这里插入图片描述

  • 进一步了解 $* 和 $@ 的区别
  • $* : 表示将变量看成一个整体
  • $@ :表示变量是独立的
#!/bin/bash
for i in "$@"
do
echo $i
done

echo "======我是分割线======="

for i in "$*"
do
echo $i
done


在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值