二、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() ...
随机推荐
- POJ - 1753 Flip Game (IDA*)
题意:4*4的棋盘摆满棋子,有黑有白,翻转一个棋子的同时也将翻转其上下左右的棋子(翻转后黑变白,白变黑),问使棋盘上所有棋子颜色相同,最少翻转的棋子数. 分析: 1.每个棋子至多翻转1次.翻转偶数次与 ...
- PHP ~ 设置和读取 Cookie
一,设置 Cookie setcookie("user",$user,time()+3600); // user 为用户名,$user 为变量的值 二,读取 Cooki ...
- 算法5:队列——解密 QQ 号
新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则.规则是这样的 ...
- python保留小数位
前言 保留小数位是我们经常会碰到的问题,尤其是刷题过程中.那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法: 方法一:fo ...
- Transaction Managament(事务管理二、Spring事务)
Transaction Managament(事务管理二.Spring事务) Spring事务框架的优势 Spring事务框架将开放过程中事务管理相关的关注点进行了分离,对这些关注点进行了抽象分离 ...
- java使用mongoTemplate去重排序查询
import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.c ...
- part8 vue内置标签keep-alive对网页性能优化
我们网页请求时候 我们点击路由切换 可以看network中数据请求 因为每次路由切换都会执行mounted钩子函数 我们这个函数中数据请求 //每次切换路由,页面都会重新渲染 在根组件中使用 路由切换 ...
- Tensorflow学习教程------tensorboard网络运行和可视化
tensorboard可以将训练过程中的一些参数可视化,比如我们最关注的loss值和accuracy值,简单来说就是把这些值的变化记录在日志里,然后将日志里的这些数据可视化. 首先运行训练代码 #co ...
- Delphi生成即调用带窗体的Dll
library frmDll; { Important note about DLL memory management: ShareMem must be the first unit in you ...
- D语言-变量、输入、输出、注释
Part 1:变量 D语言的变量有很多类型,这里只讨论几个基本类型 §1.1变量的定义方法 在D语言中,变量的定义方法是这样子的: [typename] [var1,var2,var3...] 其中, ...