二、Shell脚本高级编程实战第二部
一、什么是变量?
变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量、路径、字符串等等内容,最大的特点就是方便,更好开展工作
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,没有给的话,按照系统默认的给抛。
二、Shell脚本高级编程实战第二部的更多相关文章
- 九、Shell脚本高级编程实战第九部
一.监控mysql主从同步是否异常,如果异常,发送短信给管理员 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果错误号是:1158.1159.1008.1007.1062,请跳过 3)请使用数 ...
- 四、Shell脚本高级编程实战第四部
一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...
- 一、Shell脚本高级编程实战第一部
Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...
- 三、Shell脚本高级编程实战第三部
保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别 $*:获取shell的所有参数,将所有的参数视为单个字符串. $ ...
- 八、Shell脚本高级编程实战第八部
一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...
- 七、Shell脚本高级编程实战第七部
一.写网络服务的系统启动脚本 利用case语句开发类似系统启动rsync服务的脚本 代码: #!/bin/sah. /etc/init.d/functionspidfile="/var/ru ...
- 六、Shell脚本高级编程实战第六部
一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $ ...
- 五、Shell脚本高级编程实战第五部
一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f file 2) ...
- Shell脚本高级编程笔记一
http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...
随机推荐
- 在执行 php artisan key:generate ,报 Could not open input file: artisan 错误
Could not open input file: artisan 必须保证命令是在项目根目录,如下图所示:
- POJ 2632:Crashing Robots
Crashing Robots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8424 Accepted: 3648 D ...
- 虚拟机vmware vmnet8 未识别(转)
原文链接:https://blog.csdn.net/windows_q/article/details/50678646
- 2020PHP面试-SQL篇
一.乐观锁和悲观锁 1.悲观锁是指假设并发更新会发生冲突,不管冲突是否会发生,都会使用锁机制. 优点: 完全保证数据安全. 缺点:锁机制会有额外开销,并发度降低. 可能会产生死锁. 2. 乐观锁是指假 ...
- Spring Boot Actuator Endpoints
常用内建的Endpoints: beans:显示当前Spring应用上下文的Spring Bean完整列表(包含所有ApplicationContext的层次) conditions:显示当前应用所有 ...
- 关于mybatis的<selectKey>中的keyColumn
<mapper namespace="com.dao.EmployeeDao"> <insert id="insert"> <se ...
- BMP位图图像格式简介
1. 文件结构 位图文件可看成由4个部分组成:位图文件头(bitmap-fileheader).位图信息头(bitmap-informationheader).彩色表(colortable)和定义位图 ...
- 18 12 27 css 盒模型使用 以及相关技巧问题 元素溢出 块元素、内联元素、内联块元素
盒子模型的实际尺寸 盒子的width和height设置的是盒子内容的宽和高,不是盒子本身的宽和高,盒子的真实尺寸计算公式如下: 盒子宽度 = width + padding左右 + border左右 ...
- 第七届(16年)蓝桥杯java B组决赛真题 愤怒的小鸟 解题思路
愤怒小鸟 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车间相距 1000 米两火车 (不妨称A和B) 以时速 10米/秒 相对行驶. 愤怒的小鸟从A车出发,时速50米/秒,撞向B车,然后返回去撞 ...
- == 与 equals区别(HashCode方法)
1:==分析 1.2:基本类型比较 判断基本类型的数值是不是相等 1.3:对象类型比较 判断两个引用是不是指向同一个对象,即内存地址是不是相等. 2:equals分析 来判断对象内容是不是相等,一般有 ...