Linux Shell脚本系列教程(三):变量和环境变量

所属分类: 脚本专栏 / linux shell 阅读数: 1053
收藏 0 赞 0 分享

一、玩转变量和环境变量

变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量。脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以。在Bash中,每一个变量的值都是字符串。无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统保留,用来存储一些特别的值,这类变量就称为环境变量,相信大家对环境变量也并不陌生,因为即使在windows操作系统上,也存在环境变量。

二、普通变量

普通变量可以通过下列的方式进行赋值,并打印输出:

复制代码 代码如下:

#var=value          #等式左边是变量,右边是将要赋给变量的值
var="value"         #声明一个变量var,并将其赋值为“value”
echo $var           #使用echo输出变量的值
echo ${var}         #作用同上一行

**注意:**var=value 不同于 var = value,前者是一个赋值表达式,而后者则是一个逻辑表达式,用来判断等式两端值是否相同。在赋值表达式中,如果value中没有空白符,那么就不必使用引号进行引用,否则必须使用单引号或者双引号进行变量引用。例如:

复制代码 代码如下:

var1="value"            #不含空白符
echo $var1              #输出“value”
var2="value 2"          #含空白格,使用引号
echo $var2              #输出“value”
var3=value 2            #含空白符,不使用引号
echo var3               #在ubuntu14.04中,返回command not found

获取字符串的长度

字符串的长度是字符串极为重要的一个特征,在shell中可以使用如下方法获取字符串的长度:

复制代码 代码如下:

var="value"
length=${#var}
echo $length            #此处将输出7

三、环境变量

变量采用常见的命名方式进行命名。当程序启动时,他接受一族环静变量,可以使用env(eviroment)命令查看所有与终端相关的环境变量。对于进程来说,其运行时的环境变量可以用下面的命令来查看:

复制代码 代码如下:

cat /proc/$PID/environ      #PID总是一个整数
pgrep firefox               #我刚才的结果返回3013
cat /proc/3013/environ      #返回了一堆,不列出

HTTP_PROXY环境变量

环境变量通常不需要在当前进程中进行定义,而是从父进程中继承而来的。HTTP_PROXY环境变量,它定义了互联网应该使用哪个代理服务器。该环境变量可以通过下列方法进行设置:

复制代码 代码如下:

HTTP_PROXY=192.168.1.23:3128
export HTTP_PROXY            #使用export来设置环境变量

PATH环境变量

在默认情况下,有很多标准环境变量可供shell使用,PATH便是其中之一。

复制代码 代码如下:

echo $PATH
ecport PATH="$PATH;/home/user/bin" #在PATH中添加一条新路径

SHELL环境变量
使用SHELL环境变量可以识别当前所使用的shell版本,方法如下:
复制代码 代码如下:

echo $SHELL          #输出shell的版本
echo $0              #作用同上

UID环境变量

UID是一个重要的环境变量,可以用于检查当前脚本是以超级用户还是以普通用户的身份运行的。root用户的UID是0。

更多精彩内容其他人还在看

关于ssh连不上问题的解决方法(必看)

下面小编就为大家带来一篇关于ssh连不上问题的解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Ubuntu用户之间相互切换方法(推荐)

下面小编就为大家带来一篇Ubuntu用户之间相互切换方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Linux 编程之进程fork()详解及实例

这篇文章主要介绍了Linux 编程之进程fork()详解及实例的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈安装ORACLE时在Linux上设置内核参数的含义

下面小编就为大家带来一篇浅谈安装ORACLE时在Linux上设置内核参数的含义。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详谈linux中sar的使用方法

下面小编就为大家带来一篇详谈linux中sar的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

设置Linux系统的空闲等待时间TMOUT的方法

下面小编就为大家带来一篇设置Linux系统的空闲等待时间TMOUT的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

关于Linux反空闲设置的两种方法总结

下面小编就为大家带来一篇关于Linux反空闲设置的两种方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

linux 查找大目录和大文件的方法(推荐)

下面小编就为大家带来一篇linux 查找大目录和大文件的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Linux makefile 和shell文件相互调用实例详解

这篇文章主要介绍了Linux makefile 和shell文件相互调用实例详解的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Windows与Linux共享文件夹互相访问

这篇文章主要介绍了 详解Windows与Linux共享文件夹互相访问的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多