Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 这到底是做什么的:exec>&燃气轮机;(指挥部)_Bash - Fatal编程技术网

Bash 这到底是做什么的:exec>&燃气轮机;(指挥部)

Bash 这到底是做什么的:exec>&燃气轮机;(指挥部),bash,Bash,我看到了以下结构: exec > >(tee -a script.log) 我知道tee命令是什么,(command…)通常意味着在子shell中执行命令,exec用一个程序替换当前shell,比如exec ls,(但这里没有命令),另外>意味着什么 谁能澄清一下这个黑暗的巫婆 exec >{space}> (command) @赛斯?:)任何我可以阅读更多关于这个魔法的指针都将不胜感激。:) 它用另一个会话替换当前的bash会话,并将所有命令的输出写入script.

我看到了以下结构:

exec > >(tee -a script.log)
我知道tee命令是什么,(command…)通常意味着在子shell中执行
命令
,exec用一个程序替换当前shell,比如
exec ls
,(但这里没有命令),另外
>
意味着什么

谁能澄清一下这个黑暗的巫婆

exec >{space}> (command)

@赛斯?:)任何我可以阅读更多关于这个魔法的指针都将不胜感激。:)

它用另一个会话替换当前的
bash
会话,并将所有命令的输出写入
script.log

通过这种方式,您可以正常使用
bash
shell,并且您不会看到任何差异(大部分),但所有输出都将显示在屏幕上
script.log
文件中

发件人:

如果提供了命令,它将替换shell而不创建新进程。如果未指定命令,则可能会使用重定向来影响当前shell环境


>(tee-a script.log)
magic创建了一个管道,因此我们没有像(在本例中使用
>script.log
)那样写入文件,而是写入进程
tee-a script.log
,它也会这样做。由于一些我不知道的原因,使用
>
不起作用,而是写入指定的管道工程

那么,换言之,我可以有更多的重定向?比如exec>(somecomamnd)>(另一个命令)>(thirdone)>[空表示标准输出?]?(正如我所说的,我知道tee:)你也可以阅读很多东西,例如
diff这真的很酷。可以产生多个管状流。极其强大的cmd>2>错误等功能。我很高兴能学到新东西