`

Shell学习(8)转向

阅读更多

转向

 

文件代码:0,1,2,... < 输入 > 输出

转向语义大部分不能单独使用,必须和Bash 命令一起运用

 

操作文件:

fd<> 文件 fd 文件代码,可供读写

fd<&- 关闭输入文件

fd>&- 关闭输出文件

n<&m 复制转向输入的文件代码m ,存成文件代码n ,使n 连接至m

n>&m 复制转向输出的文件代码m ,存成文件代码n ,使n 连接至m

 

一旦备份好标准输入后,就可以对标准输入进行操作,完毕后还原标准输入,如下:exec 0<&5 5<&-

 

转向的用法:

转向输入 fd< 文件

转向输出 fd> 文件 set -o noclobber set -C 不覆盖 fd>| 文件 强制覆盖

转向附加 fd>> 文件

标准错误伴随标准输出做转向:&> 文件 或 >& 文件

 

Here Document 转向

fd<< 标记

资料

...

...

标记

例子

#!/bin/bash
exec 6<<EOF
line1
line2
line3
EOF
while read <&6
do
	echo $REPLY
done

 

结果

 

 

陷阱触发

 

在Script的执行过程中,有时候希望能实时处理系统传来的信号,如用户按了ctrl-c,处理的方式可分为两种:接受信号或忽略信号。前者通常会

对信号安排执行特定的指令; 后者主要想避免意外的状况干扰script 的运行。像这种能捕捉特定信息,并作出反应的机制,称为trap( 陷阱触发)

 

ps auxw ps -ef

查看系统定义的信号kill -l trap -l

 

信号名称不区分大小写,在传递信号时可以使用数字代码,也可以使用信号名称。

 

 

传递信号的方法

使用内置命令kill

kill - 信号 进程编号

kill -s 信号 进程编号

kill -n 信号 进程编号

kill 后可以接多个进程编号,会把指定的信号都传送给这些进程。如果省略'- 信号' ,则默认传送SIGTERM 信号给进程。

Killall - 信号 进程名称

例子

#!/bin/bash
for ((;1;))
do
	sleep 1
done

 

执行

 

trap 的运用

语法

trap ' 触发指令' 信号串行

用途:向shell 注册信号,只要系统产生此特定信号,trap 就会触发,并执行trap 命令中的“触发指令”

 

trap – 信号串行

用途:如果trap 的语法中没有触发指令,而是- 或空白,则可恢复信号串行原本的作用。如果曾使用trap 对某些信号做过其他安排,那么在script 结束前都会再用trap 恢复他们原本的作用。

 

 trap '' 信号串行

用途:忽略系统发出的“信号串行”,不做任何发应。

kill 和stop 这两个信号无法用trap 捕获,也无法忽略。

 

trap -p

用途:列出目前trap 向shell 注册的信号列表

 

分享到:
评论

相关推荐

    实战Linux Shell编程与服务器管理-作者:卧龙小三(1)

    Chapter 8 算术运算 Chapter 9 流程控制 Chapter 10 函数 Chapter 11 转向 Chapter 12 trap——陷阱触发 Chapter 14 进程管理和工作控制 Chapter 15 历史指令 Chapter 16 使用Shell Script撰写文字和图形接口...

    Shell学习略图

    测试工程师的技能版图,已从手工测试转向要求左移的代码能力,右移的运维能力,上要求产品思维,下要求广阔知识面,Shell脚本的掌握理所当然成为了必备技能。 求职寒冬从2019年延续到2020年,企业缩编的同时提高门槛...

    实战Linux Shell编程与服务器管理-作者:卧龙小三(7)

    Chapter 8 算术运算 Chapter 9 流程控制 Chapter 10 函数 Chapter 11 转向 Chapter 12 trap——陷阱触发 Chapter 14 进程管理和工作控制 Chapter 15 历史指令 Chapter 16 使用Shell Script撰写文字和图形接口...

    从Windows转向Linux教程 E3000基础学习

    说明:收集的linux学习资料,并非原创.一份不错的基础教材! 从红联110 bbs收集,以Fedora 6.0为基础:介绍了 1.linux的安装, 2.基础入门, 3.磁盘管理和访问外部存储器. 4.中文字体一集SCIM配置 5.网络配置 6.安装和...

    linux零基础学习.pdf

     一部较适合Linux学习者学习的书籍,特别是刚从Windows转向Linux的朋友。主讲Linux基本技能 。随着Linux日益强大,越来越多的人接触Linux,但苦于无参考书籍,使得Linux学习倍感吃力,本书 将指引你通向Linux高手之...

    Linux学习资料1(很适合初学者)

    这是我在红联网站下下载收集的Linux资料,很...从Windows转向Linux教程E3000基础学习 Linux实用培训学习教程1.0(最终版) Linux扫描式教程 Linux初级应用指南 Linux菜鸟过关 linuxshell linuxhl Fedora技术教程整合版

    windows编程入门基础文档教程(新手快速入门)

    在学习完C/C++后转向MFC编程,需要使用window SDK中大量的API,这里整理了一些新手快速入门掌握windows编程的入门文档教程,供大家学习参考

    Mac OS X平台的开发系列电子书

    随着苹果公司的复兴,越来越多的开发人员转向Mac OS X平台的开发。不过OSX平台使用的是很特别的Objective-C而非常规的C/C++,这使得很多开发人员对Mac OS X平台的开发有些望而却步,因此学习Objective-C以及Mac平台...

    iphone开发环境教程

    随着苹果公司的复兴,越来越多的开发人员转向Mac OS X平台的开发。不过OSX平台使用的是很特别的Objective-C而非常规的C/C++,这使得很多开发人员对Mac OS X平台的开发有些望而却步,因此学习Objective-C以及Mac平台...

    12本精彩的Linux书籍

    对于那些想从Windows转向Linux并在自己的老机器上安装Ubuntu的人,这本书就是你所需要的。我坚信这本书可以将Linux的信息介绍给那些不用Linux的人。如果你想要你的密友或朋友学习Linux系统的话,那么装上Ubuntu并用...

    工业大脑助力企业智能制造转型.pptx

    数据加工 SQL MR Shell 图形化 机器学习 决策树 聚类 神经 网络 支持 向量机 数据分析 拖拽 Dill down Report 数据应用 定向 营销 医疗 体育 广告 推荐 金融 数据采集 APP WI-FI 基站 PC 工业 传感器 手环 手表 ...

    Linux管理员指南

    第8章转向介绍如何对硬盘进行操作,讨论如何对硬盘进行管理、怎样建立分区以及设定硬盘的使用限额。第9章涉及到作为一名系统管理员需要了解掌握的某些系统最底层的知识:核心系统服务。其内容包括对一些关键性的进程...

    linux管理员指南

    第8章转向介绍如何对硬盘进行操作,讨论如何对硬盘进行管理、怎样建立分区以及设定硬盘的使用限额。第9章涉及到作为一名系统管理员需要了解掌握的某些系统最底层的知识:核心系统服务。其内容包括对一些关键性的进程...

    minecraft-init-script:在 CentOS、Fedora 和 Ubuntu 上启动 Minecraft 或 CraftBukkit 的初始化脚本

    所有支持的发行版都在转向 systemd,使得 LSB initscript 的概念相当过时。 我看到的所有问题都与 Ubuntu 的 Upstart 实现中的错误有关,它在 CentOS 上运行良好。 但是,我认为您可以更好地学习使用 Docker 之类的...

    易语言程序免安装版下载

    操作系统界面功能支持库(shell.fne)中的“执行()”命令增加一个参数“窗口显示方式”,作用与核心库“运行()”命令的同名参数一致。 6. 数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写...

Global site tag (gtag.js) - Google Analytics