Shell脚本编程(一) —— 变量定义(用户自定义变量、位置变量、预定义变量、环境变量)

        目录

1、用户自定义变量

2、位置变量(命令行变量)

3、预定义变量

4、环境变量(一次性全局变量)

5、永久全局变量(重启以后依然存在的变量)

(1) 本地变量文件

(2) 全局变量文件


1、用户自定义变量

定义变量: 变量名=value              

读取变量内容:$变量名 或者 ${变量名}

删除变量: unset 变量名

变量命名:

  • 建议使用大写来和命令区分开,比如 test、echo、ls等命令都是小写
  • 字符串要用引号
// variable.sh
NAME='gzx'
AGE=17

echo name: $NAME and age: $AGE

unset NAME

测试脚本的时候,需要给脚本添加运行权限,如果你是这个.sh文件的创建者,在命令行输入下面两者中的一种

# 如果是可以创建者、组、其他都加上执行权限
chmod a+x variable.sh

# 如果只是给创建者加上执行权限
chmod u+x variable.sh

 测试结果如下:

注意:使用变量时的本质是替换,可以拼接其他内容,比如

DIR=~/workspace/dist 

rm -rf $DIR/test

 

2、位置变量(命令行变量)

位置变量不需要显式去定义变量名,其实是根据命令行参数的位置来读取对应的内容的。Shell脚本的内容如下:

# 打印两个命令行参数的内容
# $1 表示引用命令行参数的第一个参数
# $2 表示引用命令行参数的第二个参数
echo first param: $1 and second param: $2

命令行输入如下:

./variable.sh gzx 17

3、预定义变量

预定义变量指的是系统已经内置了一些变量,我们只需要直接使用 $符号来引用。常见预定义变量的引用如下:

  • $0         脚本名
  • $*         所有的命令行参数
  • $@       所有的命令行参数
  • $#        命令行参数的个数
  • $$        当前进程的PID
  • $!         上一个后台进程的PID(命令行指令 & 表示让进程后台运行)
  • $?        上一个命令的返回值,0代表成功
# variable.sh 
echo '脚本名:'$0
echo '参数的个数:'$#
echo '当前进程的PID:'$$
echo '上一个命令的返回值:'$?

# 命令行输入
linux@linux:~/Templates$ ./variable.sh aaa bbb
脚本名:./variable.sh
参数的个数:2
当前进程的PID:3436
上一个命令的返回值:0

4、环境变量(一次性全局变量)

环境变量在父Shell中可以被使用,在子Shell中也可以被使用(子Shell会拷贝父Shell的环境)。需要注意的是,环境变量仅仅只是本次登录有效,重启以后,环境变量会消失

  • 语法格式:export  变量名=value
  • 引用环境变量:$变量名 或者 ${变量名}

下面来测试一下环境变量是否在任何地方都可以被使用,首先在家目录下添加一个环境变量

linux@linux:~$ export NAME='gzx'

然后换一个目录,在命令行打印环境变量

linux@linux:~/Templates$ echo $NAME
gzx

修改 之前的.sh脚本来打印环境变量

# variable.sh 
echo $NAME

# 命令行输入
linux@linux:~/Templates$ ./variable.sh 
gzx

5、永久全局变量(重启以后依然存在的变量)

Linux环境下的变量类型大致有三种,分别是本地变量、全局变量以及用户自定义的变量

  • 本地变量:只有当前用户可以使用的变量,保存在家目录下的 .bash_profile、.bashrc 文件中
  • 全局变量:所有用户都可以使用的变量,保存在 /etc/profile、/etc/bashrc 文件中

当变量直接写入本地变量文件或者全局变量文件的时候,此时即便是重启虚拟机,这个变量也会一直存在。下面介绍一下本地变量和全局变量的写入方式

(1) 本地变量文件

向 家目录下的 .bashrc 中写入一个变量NAME

# .bashrc 文件
NAME='gzx'

(2) 全局变量文件

向 /etc/profile 文件中写入一个变量NAME

# .bashrc 文件
export NAME='gzx'
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值