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

相关内容

热门资讯

最新引进“樱花炸金花.辅助开挂... 您好:樱花炸金花这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
今日重磅消息“官方正版炸金花.... 有 亲,根据资深记者爆料官方正版炸金花是可以开挂的,确实有挂(咨询软件无...
终于明白“摇钱树拼三张.有挂吗... 有 亲,根据资深记者爆料摇钱树拼三张是可以开挂的,确实有挂(咨询软件无需...
最新引进“山西扣点.真的有挂吗... 有 亲,根据资深记者爆料山西扣点是可以开挂的,确实有挂(咨询软件无需打开...
【第一财经】“旺旺冲击麻将.开... 家人们!今天小编来为大家解答旺旺冲击麻将透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
今日重大消息“新猴王牛牛.是不... 网上科普关于“新猴王牛牛有没有挂”话题很是火热,小编也是针对新猴王牛牛作*弊开挂的方法以及开挂对应的...
终于了解“皮皮衡阳字牌.到底是... 终于了解“皮皮衡阳字牌.到底是不是挂?”透视曝光猫腻您好,皮皮衡阳字牌这个游戏其实有挂的,确实是有挂...
终于了解“游戏茶苑.真的有挂吗... 您好:游戏茶苑这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
最新引进“新好游牛牛.有没有挂... 有 亲,根据资深记者爆料新好游牛牛是可以开挂的,确实有挂(咨询软件无需打...
民调落后,特朗普“谦虚”了:不... 据美国共和党主要民调机构发布的最新结果,美国民主党将在2026年中期选举中领先共和党7个百分点。这一...