shell基础知识-变量篇-变量的分类

㈠ 本地变量

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

㈡ 环境变量

  • 环境变量:当前进程有效,并且能够被子进程调用。

    • env查看当前用户的环境变量

    • set查询当前用户的所有变量(临时变量与环境变量)

    • export 变量名=变量值 或者 变量名=变量值;export 变量名

      [root@MissHou ~]# export A=hello		临时将一个本地变量(临时变量)变成环境变量
      [root@MissHou ~]# env|grep ^A
      A=hello
      
      永久生效:
      vim /etc/profile 或者 ~/.bashrc
      export A=hello
      或者
      A=hello
      export A
      
      说明:系统中有一个变量PATH,环境变量
      export PATH=/usr/local/mysql/bin:$PATH

      ㈢ 全局变量

    • 全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用.

    • 解读相关配置文件

    • 文件名说明备注
      $HOME/.bashrc当前用户的bash信息,用户登录时读取定义别名、umask、函数等
      $HOME/.bash_profile当前用户的环境变量,用户登录时读取
      $HOME/.bash_logout当前用户退出当前shell时最后读取定义用户退出时执行的程序等
      /etc/bashrc全局的bash信息,所有用户都生效
      /etc/profile全局环境变量信息系统和所有用户都生效
      $HOME/.bash_history用户的历史命令history -w 保存历史记录 history -c 清空历史记录
    • 说明:以上文件修改后,都需要重新source让其生效或者退出重新登录。

    • 用户登录系统读取相关文件的顺序

      1. /etc/profile

      2. $HOME/.bash_profile

      3. $HOME/.bashrc

      4. /etc/bashrc

      5. $HOME/.bash_logout

㈣ 系统变量

系统变量(内置bash中变量) : shell本身已经固定好了它的名字和作用.

内置变量含义
$?上一条命令执行后返回的状态;状态值为0表示执行正常,==非0==表示执行异常或错误
$0当前执行的程序或脚本名
$#脚本后面接的参数的个数
$*脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开
$@脚本后面==所有参数==,参数是独立的,也是全部输出
$1~$9脚本后面的位置参数,$1表示第1个位置参数,依次类推
${10}~${n}扩展位置参数,第10个位置变量必须用{}大括号括起来(2位数字以上扩起来)
$$当前所在进程的进程号,如echo $$
$!后台运行的最后一个进程号 (当前终端)
!$

调用最后一条命令历史中的参数

进一步了解位置参数$1~${n}

#!/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

[root@MissHou ~]# bash 3.sh a b c
a
b
c
======我是分割线=======
a b c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值