shell脚本编程之变量的小用法
变量赋值
${parameter:-word}:如果parameter为空或未定义,则变量展开为"word";否则,展开为parameter的值;
${parameter:+word}:如果parameter为空或未定义,不做任何操作;否则,展开为"word"值;
${parameter:=word}:如果parameter为空或未定义,则变量展开为"word",并将展开后的值赋值给parameter;
${parameter:?word}:如果parameter为空或未定义,则显示为错误,错误信息为"word";
${parameter:2}:跳过parameter的前两个字符,取parameter后面的所有字符;
${parameter:2:3}:跳过parameter的前两个字符,从parameter的第三个字符开始往后取三个字符;
示例
[root@centos6 ~]# vim test.sh
#!/bin/bash
. /root/f1.txt
TEST=${TEST:-'hello world'} #如果f1.txt中定义了TEST变量的值,就打印TEST值;如果f1.txt中未定义或TEST值为空,就打印后面的'hello world';
[ -n "$TEST" ] && echo "$TEST"
局部变量
local VAR_NAME function test {
local a=$[3+4]
}
在函数中定义局部变量,只在函数中有效,不影响函数外的变量;如果函数外也有同名的变量a,则函数中的变量a只在函数中有效,与函数外的变量a不冲突
mktemp的用法
生成临时目录和文件;
生成临时目录:-d
/tmp/目录每隔30天会做一次清理,30天没有被访问过的将会被清理 [root@localhost ~]# mktemp /tmp/file.XXXXX
/tmp/file.eJehp
[root@localhost ~]# mktemp /tmp/file.XXXXX
/tmp/file.0Z7KZ
生成随机指定字符个数后缀的文件,并且打印出文件路径
[root@localhost ~]# FILE=`mktemp /tmp/file.XXXXX` #把mktemp生成的临时文件和路径赋值给FILE变量
信号
kill -SIGNAL(信号) PID(进程编号)
1:HUP;终端断线
2:INT;中断(同 Ctrl + C)
3:QUIT;退出(同 Ctrl + \)
9:KILL;强制终止
15:TER;终止 脚本中,可以实现信号捕捉;但9和15信号捕捉不了;如果9和15信号可以捕捉,抓到信号抛弃掉,会造成脚本终止不了;
trap命令:bash_shell内置命令,可以实现信号捕捉;
trap 'command' 信号列表 示例1:
[root@centos6 ~]# vim date.sh
#!/bin/bash
trap 'echo "You go...";exit 1' INT #INT(2)信号等同于ctrl+c;设定信号捕捉,当捕捉到ctrl+c(2)信号时,用打印You go和exit代替2信号
while :;do
date
sleep 2
done
[root@centos6 ~]# bash date.sh
Wed Dec 11 20:00:42 CST 2019
Wed Dec 11 20:00:45 CST 2019
^CYou go... 示例2:
[root@centos6 ~]# vim ping.sh
#!/bin/bash
FILE=`mktemp /tmp/file.XXXXX` #函数外定义的变量可以用于函数中
NET=192.168.0
function signal {
echo "quit"
rm -f $FILE
exit 1
}
trap 'signal' INT #当接收到ctrl+c(2)信号时,执行signal函数,用于代替2信号
for i in {200..254};do
if ping -c 1 -W 1 $NET.$i &>/dev/null;then #ping命令会接收ctrl+c信号,所以不会退出循环
echo "$NET.$i is up" | tee >> $FILE #tee命令会把标准输入的内容输出到一个文件中
else
echo "$NET.$i is down"
fi
done
shell脚本编程之变量的小用法的更多相关文章
- shell脚本编程(一) 变量、条件判断、循环
目录 1. shell脚本编程 2. 运行 Shell 脚本有两种方法 3. 变量 4. 本地变量 5. 环境变量 6. 参数变量 7. 多行注释 8. if条件判断 ...
- shell脚本编程之变量简介及脚本执行过程
脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...
- 浅谈自底向上的Shell脚本编程及效率优化
作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...
- Shell脚本编程总结及速查手册
Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
随机推荐
- JS中的逻辑运算符&&、||
原文:JS中的逻辑运算符&&.|| 1.JS中的||符号: 运算方法: 只要"||"前面为false,不管"||"后面是true还是false, ...
- 运行一个docker镜像并开机启动
记录,我用的liunx机是centos7.x 安装 安装Docker包$ sudo yum install docker-engine 启动Docker守护进程$ sudo service docke ...
- 微信小程序文档
提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说明: 示例代码: wx.showToast({ title: '成功', icon: 'success', dur ...
- 十二、vue中watch原理
1.普通的watch 2.对象属性的watch: 对象和数组都是引用类型,引用类型变量存的是地址,地址没有变,所以不会触发watch.这时我们需要进行深度监听,就需要加上一个属性 deep,值为 ...
- JavaWeb 之 EL表达式
EL 表达式 一.概述 1.概念 EL 表达式:Expression Language 表达式语言. 2.作用 替换和简化 jsp 页面中 java 代码的编写. 3.语法格式 ${表达式} 4.注意 ...
- 珠宝juelrye宝石
juelrye n.珠宝 late 14c., juelrye "precious ornaments, jewel juelrye (uncountable) Adornment with ...
- restfulframework引用多对多外键
记录一下工作中遇到的问题 最近在写restfulframework,感觉还是很便利的 首先贴一下文档地址 https://www.django-rest-framework.org/api-guide ...
- scrapy 图片管道学习笔记
使用scrapy首先需要安装 python环境使用3.6 windows下激活进入python3.6环境 activate python36 mac下 mac@macdeMacBook-Pro:~$ ...
- 使用Docker搭建Elasticsearch集群环境
本篇文章首发于头条号单机如何搭建Elasticsearch集群?使用容器技术快速构建集群环境,欢迎关注头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_te ...
- Scala快速入门 - 基础语法篇
本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...