一、什么是变量?

变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量、路径、字符串等等内容,最大的特点就是方便,更好开展工作

1.变量有环境变量(全局变量)和局部变量

环境变量就是全局变量,可以在创建他们的shell及派生shell都可以用

局部变量只能在创建他们的shell中使用。

个人认为这个也不是很严谨,因为就像之前上篇讲到的,如果在某个脚本中定义了一个局部变量,例如:source   xx.sh   或者   .(点) xx.sh  呢?  同样可以调用脚本中的变量。

二、环境变量

环境变量用于定义shell运行环境,保证shell命令的正确执行。所有的环境变量都是全局的,脚本随便用,因为脚本的执行首先执行的是环境变量加载一遍;一般情况下在.bash_profile文件中或者全局配置/etc/profile,/etc/bashrc文件或者/etc/profile.d中定义。将环境变量放入profile中,每次用户登陆就可以初始化了。

传统情况下,环境变量都是大写。通过命令env、set进行查看系统定义的一些环境变量。

一般每一个用户下面都有.bashrc和.bash_profile文件;全局环境下是/etc/profile文件 和/etc/bashrc ,/etc/profile.d ;特别说明的是,/etc/motd下面一般是登陆后显示的字符串

三、局部变量

只是在当前的shell中生效。

无论是局部变量或者全局变量,默认情况下,数字不加引号,其他都加双引号。

四、单引号、双引号

单引号:所见及所得

双引号:直接输入内容,如果里面有变量要输出,请用反引号

五、关于变量的定义,多多模仿系统自带的/etc/init.d/functions函数库脚本定义思路。

六、shell特殊变量

1.      $0 获取脚本的文件名,如果带路径,则保留脚本的路径

dirname  表示路径    basename 表示文件名

2. $n    表示脚本的传参 ,$1 $2  ....${10}

3. $#   获取当前shell脚本命令行中参数的总个数,一般用在判断参数的个数

4.  $?   获取上一个命令的返回值

在脚本中 exit 1,给当前shell返回执行的状态,赋值给当前shell的$?这个变量,函数的话一般给return,没有给的话,按照系统默认的给抛。

最新文章

  1. Direct3D 10学习笔记(三)——文本输出
  2. 对datatable操作,查询
  3. HTML5 respond.js 解决IE6~8的响应式布局问题
  4. Unity Profiler 性能分析
  5. 9.装饰者模式(Decorator Pattern)
  6. Oozie 中各种类型的作业执行结果记录
  7. V2EX社区
  8. [转]解决MySQL出现大量unauthenticated user的问题
  9. Hash函数
  10. Kettle日志中BootFeaturesInstaller错误
  11. MySQL中表复制:create table like 与 create table as select
  12. 【Java基础】13、抽象方法不能是static或native或synchroniz 原因及误解
  13. 初学HTML-6
  14. Spring XML配置里的Bean自动装配
  15. Docker的一些概念
  16. WAP用户评论简单实现瀑布流加载
  17. golang container heap&sort
  18. UVALive - 7261 Xiongnu's Land
  19. C# 调用微信接口的代码
  20. 升级Tornado到4后weibo oauth登录不了

热门文章

  1. MVC学生管理系统-阶段III(删除学生信息)
  2. POJ-3629 模拟
  3. JPA 开发中遇到的错误
  4. EXCEL排序(hdu 1862)
  5. 201809-2 买菜 Java
  6. POJ 3278:Catch That Cow
  7. unix中嘚vim编辑器
  8. Cracking Digital VLSI Verification Interview 第二章
  9. ZOJ 3299 线段树 离散化
  10. Linux--Centos7开机启动 mysql5.7.19