linux shell 基础语法B
admin
2023-03-10 14:21:54
0

接着之前的内容继续讲shell编程的基础。
这部分还是先要巩固重定向的使用,以及创建自己的文件描述符,在编写shell脚本中关注临时重定向和永久重定向的用法。
(1)< <<
(2)> >>
为了区分如上的重定向符号,大家搞懂以下2个例子就行:
cat > file <cat >> fileA 实际使用中输入重定向还是比较少,多数是输出重定向
&> 表示stdout和stderr都重定向
对于文件描述符,我们不光要掌握0,1,2,还要能够自己创建自己的文件描述符,且在shell编程中与默认的标准文件描述符进行组合使用。比如说要恢复文件描述符就是一个例子。
exec 3 >&1
exec 1> testfile
...
...
exec 1>&3
...
...
以上是输出重定向的恢复,输入重定向如下
exec 6 <&0
exec 0 ...
exec 0 <&6
关闭文件描述符
exec 3 >&-
还有一种<>读写文件描述符的,慎用,最好是读完后再重定向写入,不然shell维护的内部指针会把文件内容搞得很混乱。
创建临时文件和目录
mktemp file.XXXXXX
mktemp -t 创建在/tmp下面且返回绝对路径
mktemp -d创建目录
tee的使用
tee -a

重定向讲完,再讲讲脚本的控制。脚本的控制主要是信号的处理。
用kill -l就可以看到linux支持的信号。这些信号是一类“软中断信号”,信号分为硬中断信号和软中断信号,在中断处理的上半部分由硬中断执行,下半部分一般都是交给软中断执行。linux中的kill方式就是用户态下进程间异步信号通信的一种方法。按照不同的角度,还可以把信号分为实时和非实时,可靠和非可靠。
大部分信号都是会去停止,终止进程,但是还是有细微差异,比如信号是否可以捕获,是否可以忽略等等,信号的默认动作也是不一样的,有些会触发dump core。
基本掌握 ctrl+c ctrl+z 对应的信号
捕获信号使用trap “:” SIGINT
放弃捕获 trap --SIGINT
可以使用trap实现简单的跳板机程序
脚本还可以在后台执行 bash xx.sh &
如果希望终端退出不影响脚本的执行使用nohup
执行脚本就会产生进程,进程是需要占用内存和cpu资源的。一般通过nice renice来调整谦让度-20~19,值越低cpu需求越高。也可以用cpulimit和cgroup来实现进程的资源管理。cgroup可以对一组进程进行管理限制,且不限于cpu,memory,blkio也行。
定时脚本也是脚本控制的一个内容,at命令可以完成简单的需求。更多的还是使用crontab文件或者crontab命令来实现,anacron也需要了解一下。

函数是基础语法的最后一部分。
结构:
function xxx()
{

}
xxx()
{

}
在shell中变量默认都是全局的,如果要局部使用请加local
数组类等复杂变量无法直接传递,可以拆分后再组合来实现效果。
注意函数位置变量和脚本位置变量的关系,别混淆。
shell函数也能实现递归等操作。
shell定义函数也有单行的表示方式。
shell编写脚本后,可以把一些公共的标准函数放到一个shell文件中,后续在别的脚本中直接以库的形式引用,source和点操作符.来实现。

相关内容

热门资讯

浙江人形与杰克科技签约2000... 来源:上海证券报·中国证券网 上证报中国证券网讯(记者 王子霖)据浙江人形机器人创新中心有限公司(以...
原创 三... 不出意外的话,今年苹果,高通、三星,联发科,这4家确定会推出2nm的手机芯片。 并且高通、联发科、苹...
Kimi、阶跃再获百亿融资,D... 图片由AI生成 出品 | 搜狐科技 作者 | 梁昌均 编辑 | 杨锦 中国大模型创业公司再次迎来融资...
“我妈有俩老公”?OPPO活该... 5月8日,OPPO官方微博发布了一条关于母亲节的宣发文案,内容因表述问题,引起热议。 相关话题“...
他,扛起又一个任正非时刻! 奔赴一场新的长征。 文 | 华商韬略 张静波 黄仁勋,急了。 2026年4月15日,在一场长达90分...
全球开源创新大会在巴黎举行 聚... 全球开源创新大会活动现场(5月6日摄)。新华社发(主办方供图) 新华社巴黎5月8日电 全球开源创新...
罕见!韩媒:韩国总统、国会议长... 据韩国《朝鲜日报》等韩媒报道,5月8日,韩国政坛出现罕见一幕:韩国总统李在明、韩国国会议长禹元植以及...
4000辆奇瑞商用车散件启运非... 河南日报讯(全媒体记者 龚砚庆 马青竹)5月8日上午,开封综合保税区内的汽车及零部件外贸基地一片繁忙...
“河南材料”中丨南阳新材料“追... 柔性功能薄膜隔热效率比传统产品高30%、紫外线与红外线阻隔率高达99%,产品在汽车玻璃、建筑玻璃和航...
河南超有品 第十个“中国品牌日... 从西安到灵宝寺河山,往返数百公里,仅半年,杨女士便跑了4趟。5月7日,她再次叩开果农司红娥家的大门,...