码迷,mamicode.com
首页 > 系统相关 > 详细

Linux学习日记—使用Shell变量

时间:2016-10-28 00:02:18      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:shell脚本   环境变量   自定义变量   位置变量   预定义变量   

    Shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应的变化。

【变量的作用】

为灵活管理Linux系统提供特定参数,而有两层意思:

    1.变量名:使用固定的名称,由系统预设或用户自定义

    2.变量值:能够根据用户设置,系统环境的变化而变化

【变量的类型】

    1.自定义变量:由用户自己定义,修改和使用

    2.环境变量:由系统维护,用于设置工作环境

    3.位置变量:通过命令行给脚本程序传递参数

    4.预定义变量:Bash中内置一类变量,不能直接修改

【自定义变量】

        格式:变量名=变量值

        变量名以字母或下划线开头,区分大小写,建议全大写

(一)定义新的变量

技术分享

(二)查看和引用变量的值

        格式:echo $变量值

技术分享

    当变量名称容易紧跟其后的其他字符相混淆时,需要添加大括号{ }将其括起来,否则将无法确定正确的变量名称。

技术分享

(三)变量赋值的特殊操作

1. 双引号("):允许通过$符号引用其他变量值,例如:

技术分享

2. 单引号(‘):禁止引用其他变量值,$视为普通字符,例如:

技术分享

3. 反撇号(`)命令替换,提取命令执行后的输出结果,例如:

技术分享

$()的作用:可以代替反撇号,解决嵌套问题,因为反撇号不能实现嵌套,例如:查询提供useradd命令程序的软件包所安装的配置文件位置

技术分享

4. read命令:用来提示用户输入信息

技术分享

(四)设置变量的作用范围

    新定义的变量只在当前shell有效,如果想进入新的shell环境同样有效,就需要使用export命令将变量导出为“全局变量”

技术分享

可以同时指定多个变量名称作为参数(不需要用$符号),变量名之间以空格分割

技术分享

使用export导出全局变量的同时,也可以为变量进行赋值,例如:

技术分享

(五)数值变量的运算

格式:expr  变量1   运算符  变量2  [运算符 变量3] ...

    +:加法运算

    -:减法运算

    \*:乘法运算,注意不能只使用“*”符号,否则将被当成文件通配符

    /:除法运算

    %:求模运算,又称为取余运算,用来计算数值相除后的余数

技术分享

若要将运算结果赋值给其他变量,可以结合命令替换操作(使用反撇号)

技术分享

【特殊的Shell变量】

1. 环境变量

    环境变量指的是出于运行需要而由Linux系统提前创建的一类变量,主要用于设置用户的工作环境,包括用户宿主目录,命令查找路径,用户当前目录,登录终端等。

技术分享

PHTH变量用于设置可执行程序的默认搜索路径,例如:

技术分享

2. 位置变量

    位置变量也成为位置参数,使用$1,$2,$3,...,$9表示。例如:

编写一个adder2num.sh的小脚本,用来运算两个整数的和

技术分享

需要计算的两个整数在执行脚本时以位置变量的形式提供

技术分享

3. 预定义变量

    预定义变量,系统安装好之后就有,不能创建,只能使用,例如:$#表示命令行中位置参数的个数,$*表示所有位置参数的内容,$?表示前一条命令执行后的返回状态,返回0表示正确。$0表示当前执行的脚本或程序的名称。

技术分享

本文出自 “乌云科技” 博客,请务必保留此出处http://wuyunkeji.blog.51cto.com/12028005/1866423

Linux学习日记—使用Shell变量

标签:shell脚本   环境变量   自定义变量   位置变量   预定义变量   

原文地址:http://wuyunkeji.blog.51cto.com/12028005/1866423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!