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

 更新时间:2015年06月02日 15:13:01   投稿:junjie  
这篇文章主要介绍了Linux Shell脚本系列教程(三):变量和环境变量,本文讲解了普通变量、获取字符串的长度、环境变量等内容,需要的朋友可以参考下

一、玩转变量和环境变量

变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量。脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以。在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。

相关文章

  • shell脚本命令行参数简介

    shell脚本命令行参数简介

    本文详细介绍了shell脚本命令行参数的用法,在shell脚本中要注意命令行参数怎么使用,这也是shell编程中的重点内容,有需要的朋友参考下。
    2014-04-04
  • Linux nc命令使用示例

    Linux nc命令使用示例

    nc是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉,nc命令在linux系统中实际命令是ncat,nc是软连接到ncat,这篇文章主要介绍了Linux nc命令使用示例,需要的朋友可以参考下
    2023-03-03
  • Linux xargs命令详细介绍

    Linux xargs命令详细介绍

    这篇文章主要介绍了 Linux xargs命令详细介绍的相关资料,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一,需要的朋友可以参考下
    2017-01-01
  • linux系统下hosts文件详解及配置

    linux系统下hosts文件详解及配置

    hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下。这篇文章主要介绍了linux系统下hosts文件详解及配置的相关资料,需要的朋友可以参考下
    2016-10-10
  • shell 编程中空格的使用方法

    shell 编程中空格的使用方法

    这篇文章主要介绍了shell 编程中空格的使用方法,需要的朋友可以参考下
    2015-01-01
  • Shell实现批量操作文件的方法详解

    Shell实现批量操作文件的方法详解

    这篇文章主要为大家总结了一下Shell实现批量操作文件的命令,例如:查找某文件夹下指定文件所在的路径、批量删除某个文件夹下的指定文件,感兴趣的可以了解一下
    2022-09-09
  • shell脚本ssh远程执行命令给变量赋值的问题解决

    shell脚本ssh远程执行命令给变量赋值的问题解决

    本文主要介绍了shell脚本ssh远程执行命令给变量赋值的问题解决,就是从A机器通过SSH方式到B机器,并执行相关的命令,具有一定的参考价值,感兴趣的可以了解一下
    2023-07-07
  • shell脚本编程之case语句学习笔记

    shell脚本编程之case语句学习笔记

    这篇文章主要介绍了shell脚本编程之case语句学习笔记,本文代码中包含注释来说明case语句的使用,需要的朋友可以参考下
    2014-09-09
  • Linux tar 命令出现 Cowardly refusing to create an empty archive 错误解决办法

    Linux tar 命令出现 Cowardly refusing to create an empty archive

    这篇文章主要介绍了Linux tar 命令出现 Cowardly refusing to create an empty archive 错误解决办法的相关资料,需要的朋友可以参考下
    2017-04-04
  • 一天一个shell命令 linux文本操作系列-diff命令详解

    一天一个shell命令 linux文本操作系列-diff命令详解

    这篇文章主要介绍了一天一个shell命令 linux文本操作系列-diff命令详解,需要的朋友可以参考下
    2016-06-06

最新评论