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和点操作符.来实现。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...