TLCL学习笔记|第37章|exotica(一些用法)
(认知有限,如有不妥,还望告知,欢迎讨论)
命名管道
行为类似于文件,用以实现FIFO,为内容提供一个暂存地
创建一个命名管道
mkfifo pipe1

命名管道的使用
eg.(用两个终端)

组命令和子shell
两者主要都是用来组合命令使用的,长得很像。
不同之处在于,组命令用花括号把它的命令包裹起来,而子 shell 用括号。值得注意的是,鉴于 bash 实现组命令的方式, 花括号与命令之间必须有一个空格,并且最后一个命令必须用一个分号或者一个换行符终止。
组命令
{ command1; command2; [command3; ...] }
子shell
(command1; command2; [command3;...])
进程替换
(个人目前觉得还是一个暂存区概念的东西,子shell被杀死后,通过进程替换,外面的shell可以读取子shell没死之前产生的内容)
一种适用于产生标准输出的进程:
<(list)
另一种适用于接受标准输入的进程:
>(list)
使用例子
eg.使用read处理一个目录列表的内容,内容创建于一个子 shell


陷阱
个人理解:当脚本运行过程中,有外部信号输入时,trap用来对这种信号进行处理,确保原脚本程序合理安全的运行。
eg. 使用trap防止程序被中断


异步执行
wait
eg.父进程等待子进程执行完再结束。



=END=
=reference=
[1]http://billie66.github.io/TLCL/book/chap37.html