03_Shell变量

【Shell】03_Shell变量

一、环境变量

Linux系统配置文件(全局配置文件和用户个人配置文件)中定义的变量,提供给所有Shell程序使用

1.1、全局环境变量

1.1.1、配置文件位置

/etc/environment

/etc/bashrc(或者/etc/bash.bashrc)

/etc/profile(或者/etc/bash_profile)

/etc/profile.d/xxx.sh

1.1.2、常用全局环境变量
变量名称含义
PATH类似于Windows的Path环境变量
HOME当前用户家目录
SHELL查看当前SHELL解析器
HISTFILE查看history命令 存储目录
LANG查看当前系统语言

在这里插入图片描述

1.2、用户环境变量

1.2.1、配置文件位置

~/.bashrc

/.profile(部分系统为:/.bash_profile)

1.3、查看环境变量

env   查看系统环境变量
set   查看系统环境变量 + 自定义变量 + 函数

还有终端一次性配置,参考博文 https://blog.csdn.net/Holenxr/article/details/137219507

二、自定义变量

2.1、自定义局部变量

定义在一个脚本文件中的变量,只能在这个脚本文件中使用的变量

#!/bin/bash 

var_name=value

2.2、自定义常量

变量设置值后不可以修改的变量,也叫只读常量

#!/bin/bash 

var_name=value

readonly var_name

2.3、自定义全局变量

在当前脚本文件中定义,在当前Shell环境和子Shell环境中都可以使用的变量

2.3.1、父子Shell环境介绍

有两个Shell脚本1.sh和2.sh,如果在1.sh中执行了2.sh,那么1.sh就是父Shell环境,2.sh就是子Shell环境。

2.3.2、语法及示例
#!/bin/bash

#语法1:
var_name=value
export var_name
#语法2:
export var_name=value

实例:在A.sh中定义一个变量VAR,B.sh中打印VAR,在A.sh中执行B.sh。

A.sh
#!/bin/bash

export VAR=123
sh B.sh
B.sh
#!/bin/bash

echo $VAR

2.4、自定义变量的使用

#!/bin/bash

var_name=value

#使用变量
#用法1:
echo $var_name
#用法2:
echo ${var_name}
#区别:花括号方式适合拼接字符串

#删除变量
unset var_name

三、特殊变量

3.1、特殊变量:$n

用于获取脚本文件执行时传入的参数

$0     用于获取当前脚本文件名
$1~$9  用于获取第1个到第9个输入参数
${数字} 用于获取第10个以上输入参数

3.2、特殊变量:$#

用于获取脚本文件执行时参数的个数

3.3、特殊变量:$* 和 $@

获取所有输入参数

#!/bin/bash 

#直接打印时,两个变量是没有区别的,与单双引号无关,都是"$1 $2 ... $n"
echo "$@"
echo $@
echo "$*"
echo $*

在这里插入图片描述

#!/bin/bash 

#循环当中,有双引号是有区别的
for item in "$@"
do
  echo $item
done

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

在这里插入图片描述

#!/bin/bash 

#循环当中,没有双引号是没有区别的
for item in $@
do
  echo $item
done

for item in $*
do
  echo $item
done

在这里插入图片描述

3.4、特殊变量:$?

用于获取上一个Shell命令的退出状态码,或者是函数返回值

一般0代表执行成功,非0代表执行失败

在这里插入图片描述

3.5、特殊变量:$$

获取当前Shell脚本的进程号

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值