Linux运维之shell变量.md

齐天大圣
Lepaskan: 2020-06-24 14:06:11
asal
2142 orang telah melayarinya

我们知道shell里面有许多变量,比如我们经常会用到的PATH变量,它的作用就是,它的作用是设置可执行文件的目录,这样输入命令的时候就不用使用绝对路径了。除此之外,shell还有许多其他的变量。今天,来和大家讨论下shell变量。

分类

我们知道,php里面有局部变量和全局变量的区分,shell里面和php非常类型,有环境变量、普通变量。环境变量一般用于定义shell的运行环境,而普通变量则经常用于编写shell脚本中。

环境变量和普通变量的区别是和php的变量非常类似:区别都是使用范围的不同,shell的环境变量可以在当前shell以及衍生的shell的使用,而普通变量只能在当前shell使用。环境变量通常使用大写,普通变量通常使用小写。

环境变量

查看当前所有的环境变量,使用env(environment)命令即可

# env
XDG_SESSION_ID=38135
HOSTNAME=iz8vb626ci0aehwsivxaydz
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=114.106.186.229 31955 22
QTDIR=/usr/lib64/qt-3.3
……
Salin selepas log masuk

另外还可以用set命令来查看,但是该命令会列出所有环境变量以及普通变量。一般的,环境变量都使用大写的字母来表示。

设置及取消环境变量

用户自定义设置环境变量的方式如下

export 变量名=变量值
Salin selepas log masuk

如想取消环境变量,则可以使用unset命令来完成

unset 变量名
Salin selepas log masuk

下面来演示一下:

# export HOBBY=basketball
# env | grep HOBBY
HOBBY=basketball

# unset HOBBY
# env | grep HOBBY
Salin selepas log masuk

变量的打印与设置

linux下有一个echo命令,使用方法和php是一样的,都是用来打印一段文本。

# echo hello,world
hello,world

# echo -e "$PWD\n$PATH"
/root
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Salin selepas log masuk

变量的设置规则,

变量名=变量内容
Salin selepas log masuk
  • 注意"="两边都不能有空格

  • 变量名称只能是字母和数字,另外首个字符不能是数字

  • 变量内容若有空格,需要使用引号(单引号、双引号)将变量内容阔起来,如name="lebron james"。双引号里可以解析变量。

  • 若有特殊字符,可以使用\来转义,如enter、'、”等特殊字符

  • 如想使用命令结果作为变量内容,可以使用$(命令)或命令;

  • 若想扩展变量内容,可以使用"{$变量}累加内容"

array

和php一样,shell变量也有数组类型。数组的定义语法如下:

变量名=(val1 val2 ... valn);
arr=(paul james durant)
Salin selepas log masuk

打印数组元素语法如下

echo ${arr[元素下标]}
# echo ${arr[0]}
paul
# echo ${arr[1]}
james
Salin selepas log masuk

打印数组所有的元素

echo ${arr[@]}
Salin selepas log masuk

打印数组的长度

echo ${#arr[@]}
Salin selepas log masuk

打印数组元素的长度

echo ${#arr[数组下标]}
Salin selepas log masuk

打印数组的部分元素 ${lnmp[@]:n1:n2} n1表示开始,n2表示长度

# 打印所有元素
# echo ${lnmp[@]}
linux nginx mysql php
# echo ${lnmp[@]:0}
linux nginx mysql php
 
# 打印从第二个元素开始的所有值
# echo ${lnmp[@]:1}
nginx mysql php
 
# 打印第一个值和第二个值
# echo ${lnmp[@]:0:2}
linux nginx
 
# 打印第二个值和第三个值
# echo ${lnmp[@]:1:2}
nginx mysql
Salin selepas log masuk

数组的赋值、替换、删除

#追加元素
# lnmp[${#lnmp[@]}]=apache
# echo ${lnmp[@]}
linux nginx mysql php apache
 
# 修改元素
# lnmp[0]=l
# echo ${lnmp[@]}
linux nginx mysql php
 
# 删除元素
unset lnmp[0]
unset lnmp[1]
unset lnmp
Salin selepas log masuk

Atas ialah kandungan terperinci Linux运维之shell变量.md. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan