shell脚本小技巧—001
时间:2022-07-22
本文章向大家介绍shell脚本小技巧—001,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
子shell的使用
在子shell中执行命令时,不会对当前的shell有任何影响,所有在子shell中执行的命令仅限于子shell内,例如:
cat test.sh
#!/bin/bash
cd /data
pwd
(
cd /usr/local/
ls -l
pwd
)
pwd
执行后的结果可能跟我们固有的想法大不一致
可以看到我们加上()后,就仿佛括号里的所有操作都与整个shell本身都没关系了,其实是开了一个子shell,所有的操作都是在子进程中执行。
下面再看一个while循环的例子
#!/bin/bash
test1() {
num=1
while :
do
if [ $num -lt 5000000 ];then
let num+=1
else
echo over.
return
fi
done
}
test2() {
num=1
while true
do
if [ $num -lt 5000000 ];then
let num+=1
else
echo over.
return
fi
done
}
使用while : 时
使用while true 时
可以看到test1 函数执行速度是快于test2的,这是因为true是作为/bin中的一个二进制文件夹来实现的,在while循环中,每执行一次,shell就会生成一个进程,而 : 则是shell内建的命令,它总是返回一个0的退出码
再看实用点的命令
cat test.sh
#!/bin/bash
repeat() { while :;do $@ && return; sleep 3;done }
$1 $@
执行结果如下
大概每隔几秒就会去访问一次,直到下载成功。
- OVSDB介绍及在OpenDaylight中的调用
- 如何在CDH集群的非元数据库节点安装MySQL5.7.12
- PySpark数据类型转换异常分析
- SQLI-LABS 更新帖(二)
- 如何重置Hue用户密码
- 如何使用R连接Hive与Impala
- Equation Group泄露工具之vBulletin无文件后门分析
- 如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业
- 如何使用Beeline连接Impala
- 微软公式编辑器系列漏洞分析(一):CVE-2017-11882
- 预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相
- RPO攻击技术浅析
- 渗透技巧 | Windows上传并执行恶意代码的N种姿势
- 如何通过Cloudera Manager配置Spark1和Spark2的运行环境
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法