Linux命令执行技巧全解析
1. 进程替换的工作原理
在Linux操作系统中,当打开一个磁盘文件时,系统会用一个整数(即文件描述符)来表示该文件。进程替换是通过运行一个命令,并将其输出与一个文件描述符关联起来,模拟成一个文件。对于访问该输出的程序来说,这个输出就好像存在于一个磁盘文件中。
可以使用 echo 命令查看文件描述符,示例如下:
$ echo <(ls)
/dev/fd/63
在这个例子中, <(ls) 的文件描述符是63,它会在系统目录 /dev/fd 中被跟踪。
需要注意的是,标准输入(stdin)、标准输出(stdout)和标准错误(stderr)分别由文件描述符0、1和2表示,这就是为什么重定向标准错误的语法是 2> 。
表达式 <(…) 会创建一个用于读取的文件描述符,而相关的表达式 >(…) 会创建一个用于写入的文件描述符,但在实际使用中,后者很少被用到。
进程替换是一个非POSIX特性,可能在你的shell中被禁用。若要在当前shell中启用非POSIX特性,可以运行 set +o posix 。
2. 命令作为字符串的技巧
每个命令本质上都是一个字符串,但有些命令在处理时更像是字符串操作。下面介绍几种将字符串逐块构建,然
超级会员免费看
订阅专栏 解锁全文
2226

被折叠的 条评论
为什么被折叠?



