shell变量

文章详细介绍了LinuxShell中的环境变量,包括系统环境变量、用户级环境变量、自定义变量(局部、常量、全局)的定义与使用,以及特殊符号变量在处理脚本参数时的角色。此外,还提到了变量的查询、删除和父子shell环境的概念,以及命令的退出状态码和进程ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境变量

shell中的命令是用来操作数据的,对数据进行增删改查

 变量用于存储管理临时的数据,这些数据都是在运行内存中的

变量类型:系统环境变量、自定义变量、特殊符号变量

系统环境变量:是系统提供的共享变量,是linux系统加载shell的配置文件中定义的变量共享给所有的shell程序使用

环境变量分类

 系统级环境变量:shell环境加载全局配置文件中的变量共享给所有用户所有shell程序使用,全局共享

用户级环境变量:shell环境加载个人配置文件中的变量共享给当前用户的shell程序使用,登录用户使用 

使用env命令来查看当前系统环境变量

使用set命令来查看所有变量

 

 自定义变量

分类:

  1. 自定义局部变量:定义在一个脚本文件中,只能在这个脚本文件中使用的变量
  2. 自定义常量:赋值后不可以修改,也叫只读变量
  3. 自定义全局变量:在当前脚本文件中定义全局变量,这个全局变量可以在当前shell环境和子shell环境中都可以使用

自定义变量

var_name=value

规格:

  1. 变量名称可以有字母、数字和下划线组成,但是不能以数字开头
  2. 等号两侧不能有空格
  3. 在bash环境中,变量的默认类型都是字符串类型
  4. 变量的值如果有空格,必须使用双引号括起来
  5. 不能使用关键字

查询变量值语法:

# 直接使用变量名查询
$var_name

# 使用花括号,适合拼接字符串
${var_name}

变量删除:

unset var_name

常量

定义语法

readonly var_name

全局变量

父子shell环境介绍:有两个脚本文件 A.sh和B.sh

如果在A文件中执行了B文件,那么A.sh就是父shell环境,B就是子shell环境

 语法

export var_name1=value

 特殊符号变量

$n:用于接收脚本文件执行时传入的参数

$0:用于获取当前脚本文件名称

$1~$9,代表获取的第一个到第九个输入参数

第10个参数以上获取参数的格式为:${数字}

 执行脚本文件传入参数语法:

sh 脚本文件 输入参数1 输入参数2 ...

$#:获取所有输入参数的个数

使用${#}来拼接字符串

$*:获取所有输入参数,用于以后输出所有参数。使用双引号括起来,获得的所有参数为一个字符串,是整体

$@:获取所有输入参数,用于以后输出所有参数。使用双引号,获取的是一组参数列表对象。格式为:”$1“ ”$2“ ”$3“

1.不适用双引号括起来,功能一样

2.使用双引号括起来,不一样。使用循环打印所有输入参数可以看出区别

 

# 直接输出
echo '使用$*直接输出:'$*
echo ‘使用$@直接输出:'$@


# 循环输出
echo '循环遍历输出$*所有参数'
for item in $*
do
    cheo $item
done

echo '循环遍历输出$@所有参数'
for item in $@
do
    cheo $item
done

$?:获取上一个shell命令的退出状态码,或者是函数的返回值

每个shell命令的执行都有一个返回值,用于说明命令执行是否成功

一般来说,返回0表示成功,非零表示失败

$$:用于获取当前shell环境的进程ID号 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值