• 周日. 9月 25th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

shell脚本(5)-shell变量

admin

11月 28, 2021

一、变量介绍

将一些数据需要临时存放在内存中,以待后续使用时快速读出。

 

二、变量分类

1、本地变量:

用户私有变量,只有本用户可以使用,保存在家目录下的.bash_profile、.bashrc文件中

[[email protected] test20210724]# ls -a ~/.bash*
/root/.bash_history  /root/.bash_logout  /root/.bash_profile  /root/.bashrc

2、全局变量:

所有用户都可以使用,保存在/etc/profile、/etc/bashrc文件中

[[email protected] test20210724]# ll /etc/profile /etc/bashrc -l
-rw-r--r--. 1 root root 2853 Apr  1  2020 /etc/bashrc
-rw-r--r--. 1 root root 1845 May 20 06:10 /etc/profile

3、用户自定义变量:

用户自定义,比如脚本中的变量

[[email protected] test20210724]# name='baism'
[[email protected] test20210724]# echo $name
baism

 

三、定义变量

1、变量格式:

变量名=值;在shell编程中变量名和等号之间不能有空格

2、变量命名规则:

(1)命名中只能使用英文字母、数字和下划线,首个字符不能以数字开发

(2)中间不能有空格,可以使用下划线

(3)不能使用标点符号

(4)不能使用bash里的关键字(可用help查看保留关键字)

注意:字符串要用单引号或双引号引起来

3、读取变量内容:echo $xx

[[email protected] test20210724]# name="小王"
[[email protected] test20210724]# age=18
[[email protected] test20210724]# echo 小王是$name,而他是$age岁
小王是小王,而他是18岁

4、取消变量:unset

[[email protected] test20210724]# name="小王"
[[email protected] test20210724]# unset name
[[email protected] test20210724]# echo $name

5、定义全局变量export

[[email protected] test20210724]# export gender='male'
[[email protected] test20210724]# echo $gender
male

6、定义永久变量

本地变量:用户私有变量,只有本用户可以使用,保存在家目录下的.bash_profile、.bashrc文件中

全局变量:所有用户都可以使用,保存在/etc/profile、/etc/bashrc文件中

(1)本地变量:

[[email protected] test20210724]# echo name='mrwhite' >> ~/.bash_profile 
[[email protected] test20210724]# tail -1 ~/.bash_profile 
name=mrwhite
[[email protected] test20210724]# echo $name

[[email protected] test20210724]# source ~/.bash_profile 
[[email protected] test20210724]# echo $name
mrwhite

(2)全局变量

[[email protected] test20210724]# echo "export age=30" >> /etc/profile
[[email protected] test20210724]# tail -1 /etc/profile
export age=30
[[email protected] test20210724]# echo $age

[[email protected] test20210724]# source /etc/profile
[[email protected] test20210724]# echo $age
30

 

发表回复

您的电子邮箱地址不会被公开。