`

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 注册的信号列表

 

分享到:
评论

相关推荐

    shell完整教程(带标签)初级到高级

    本教程包含了文件和权限管理、文本处理、进程管理、正则表达式、grep、awk等内容,为读者提供了一个全面的Shell学习路径。 在第一部分中,教程首先介绍了文件系统的基本概念,包括文件和目录的管理、权限的设置和...

    shell命令豪华版

    Linux基础知识涵盖的内容非常丰富,从基础命令的使用到系统管理的各种操作,都是Linux用户和管理员必备的知识。...随着对Linux命令和Shell脚本的深入学习,用户可以逐渐利用这些工具自动化重复性的任务,提高工作效率。

    linux_c_func.rar_C shell_linux c 编程_shell_shell linux_shell编程

    C Shell因语法与C语言相似而得名,对于熟悉C语言的开发者来说,学习C Shell会相对容易。C Shell提供了变量、循环、条件语句等编程元素,使用户能够编写复杂的脚本来自动化日常任务。例如,可以编写一个C Shell脚本来...

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

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

    Linux与UNIX Shell编程指南.rar

    流程控制结构是Shell编程的核心部分,包括条件语句(`if`、`else`、`elif`)、循环(`for`、`while`)和转向语句(`case`、`break`、`continue`)。这些结构使得脚本能根据条件执行不同的指令序列,或者重复执行某段...

    shell编程,sed,awk,grep等教程整理

    接下来,我们转向sed(Stream Editor),它是一款流式文本编辑器,能在线性文本流中进行替换、删除、插入等操作。例如,`sed 's/old/new/g' file`会将文件file中的所有"old"替换为"new"。sed的强大之处在于它可以...

    LINUX与UNIX SHELL编程指南

    总的来说,这本书是学习和提升LINUX与UNIX环境下SHELL编程技能的理想资源,无论你是刚接触SHELL的新手还是希望深入研究的老手,都能从中获益匪浅。通过学习,你不仅可以熟练地编写脚本来自动化日常任务,还能更好地...

    linux与unix shell编程指南

    通过学习这本书,读者可以掌握Shell编程的精髓,从而更高效地管理和自动化Linux和Unix系统的日常任务。 文件名称列表中的PDF文件可能对应书中各个章节的电子版,例如005.PDF可能是第五章的内容,028.PDF可能是第二...

    ghost和linux shell编程教程

    接下来,我们转向Linux Shell。Shell是Linux操作系统中的一种命令解释器,允许用户通过命令行输入指令来控制操作系统。Bash(Bourne-Again SHell)是最常见的Shell,它提供了丰富的内置命令、变量、控制结构以及函数...

    LINUX与UNIX SHELL编程指南.rar

    《LINUX与UNIX SHELL编程指南》是一本深入...此外,这也能为那些希望进一步学习系统管理、脚本编程或者转向系统开发的人提供坚实的基础。无论你是初学者还是有一定经验的系统管理员,都能从这本书中收获宝贵的知识。

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

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

    从windows转向Linux基础学习

    7. **Shell脚本编程**:学习编写简单的Shell脚本可以提高效率,例如自动化日常任务。了解变量、条件语句、循环等基础知识即可入门。 8. **网络与远程连接**:Linux支持SSH(安全外壳协议)进行远程管理,熟悉`ssh`...

    shell编程和unix命令

    接下来,我们转向"Shell编程"。Shell是Unix系统中的一个命令解释器,它允许用户通过编写脚本执行一系列命令。其中,Bash(Bourne-Again SHell)是最常用的Shell。以下是一些Shell编程的关键概念: 1. **变量**:...

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

    10. **shell脚本编程**:初步了解bash shell脚本,学习编写简单的自动化任务。 以上内容只是Linux入门的一部分,随着对系统的深入理解和实践,你还将接触到更高级的主题,如系统调试、服务器配置、编程开发环境的...

    linux操作系统中shell和Python入门以及使用实例

    在“Linux操作系统中shell交互原理”这个部分,我们将学习到如何使用基本的Shell命令,如ls(列出目录内容)、cd(切换目录)、mkdir(创建目录)和rm(删除文件或目录)。除此之外,还将涉及Shell脚本编写,这是...

Global site tag (gtag.js) - Google Analytics