转载请标明http://www.cnblogs.com/winifred-tang94/

shell环境中变量有三种类型:

a、  环境变量;可以在shell脚本中直接利用“$环境变量名称”的形式引用。

b、  用户自定义变量;不需要事先定义,通常情况下,使用变量的时候直接对变量赋初值。变量名称=变量初始值(注意:变量名称的要求——首字符必须是字母,可以用下划线,但是不能有标点符号和空格,不能使用shell里的关键字)

c、  系统全局变量;代表了特定含义,不能被用户修改。一般来说,主要的全局变量包括以下几个:

$#:执行shell脚本时,命令行参数个数,不包括脚本本身。

$?:执行上一条shell命令的返回值(退出状态,大部分命令执行成功返回0,失败返回1,不过也有一些其他命令返回其他值标识其他错误)。

$0:shell脚本程序自身的名称。同时,$1代表shell命令行中第一个参数,$2代表第二个参数,$3代表第三个参数,以此类推。

$*:传递给脚本或函数的所有参数。

$$:当前shell进程ID,就是当前脚本所在的进程ID。

要在脚本中使用变量则是利用“$变量名称”的方法。

Eg.创建一个脚本计算两数之和

值得注意的一点:在使用expr进行运算时,运算符两边要记得加空格。

结果是:

一开始出错如下:

原因:这个脚本文件需要除了脚本本身以外的参数,运行脚本的时候没有输入参数。

$* 和 $@的区别:

$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。 但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

Eg.

转载于:https://www.cnblogs.com/winifred-tang94/p/5823988.html

shell变量的使用相关推荐

  1. linux特殊系统变量,linux环境几个特殊的shell变量

    特殊的shell变量: $0  获取当前执行的shell脚本的文件名 $n  获取当前执行的shell脚本的第n个参数值,n=1..9 $*  获取当前shell的所有参数 "$1 $2 $ ...

  2. linux脚本查看变量类型,Shell变量:Shell变量的定义、删除变量、只读变量、变量类型...

    变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell 中,每一个变量的值 ...

  3. linux超级基础系列——shell变量(本地变量和环境变量)

    linux超级基础系列--shell变量(本地变量和环境变量) 2006-12-04 00:39 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存诸如路径名.文件名或者一 ...

  4. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID(ProcessID)  $!  Shell最后运行的后台Process的PID  $ ...

  5. 《Linux shell变量总结回顾》RHEL6

    在实际的生产中,运维一般使用的shell语法还是比较多的,时不时的就要写一个简短shell脚本,大型的shell脚本用到的function 比较多,便于下一个脚本的引入,下面主要总结一些简单的shel ...

  6. sed和awk中使用shell变量

    最近做预料处理,使用bash脚本,需要在脚本的sed和awk使用shell变量以控制循环,出现一些问题后找到解决办法如下: 1.sed使用shell变量  这个比较好办,sed命令中可以用单引号和双引 ...

  7. shell变量加单引号sql_关于shell:在Bash中的命令中扩展变量的单引号

    我想从bash shell脚本中运行一个命令,该脚本在单引号和变量中包含单引号和一些其他命令. 如repo forall -c '....$variable'. 在这种格式中,对$进行转义,不展开变量 ...

  8. 马哥学习笔记——shell变量类型

    shell变量基础 shell 变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let. de ...

  9. Shell变量命名规则

    Shell变量命名规则 变量名必须是以字母或下划线字符"_"开头,后面跟字母.数字或下划线字符.不要使用?.*或其他特殊字符命名你的变量. 注意: 变量名和等号之间不能有空格: 首 ...

  10. Linux shell 变量 数学 运算

    出处:http://qujunorz.blog.51cto.com/6378776/1382085 Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种 ...

最新文章

  1. 目标检测 - YOLO9000 : Better, Faster, Stronger
  2. SpringBoot 使用(三): 配置文件详解
  3. 通向高可扩展性之路(谷歌篇)
  4. 国外流行十大PHP框架
  5. Python中abs()和fabs()方法之间的区别
  6. 简单高效地控制高亮度LED
  7. 江苏高中计算机考试成绩查询系统,江苏2018普通高中信息技术学业水平测试成绩查询系统已开通...
  8. Timus 1015. Test the Difference!
  9. @程序员,如何快速配置 Spring?
  10. Section 1.3 milk
  11. spring整合cxf,轻松编写webService客户端、服务端
  12. JDK各个版本的新特性jdk1.5-jdk8
  13. ApacheBench~网站性能测试工具
  14. 虚拟机下载-下载windows镜像
  15. AutoCAD自带CAD Express Tools实现停车位自动编序号
  16. 机器人学基础(一):空间描述与坐标变换
  17. t470键盘拆解_thinkpad t470怎么样?thinkpad t470拆机图解全面评测
  18. MapGuide应用开发系列(三)----MapGuide 数据包管理及Maestro亮点功能介绍
  19. 洛谷——P1957 口算练习题
  20. latex 琐粹记录

热门文章

  1. dnf剑魂buff等级上限_DNF:又是随机大坑?8月新护石装备可升级,但升3个需要刷半年...
  2. linux脚本实现多重管道,制作Linux shell时流重定向和管道
  3. 在CentOS7上安装vim编辑器报错无法解析阿里云主机
  4. Spring Boot基础学习笔记:可视化迎新
  5. Java案例:读取XML文档
  6. 算法学习笔记:对指定金额计算最少钞票数
  7. 2017.9.8 字符串 失败总结
  8. android双缓冲绘图技术分析
  9. python利用numpy存取文件
  10. 框架笔记:记录XLua的简单接入