gpt4 book ai didi

bash - 这到底是做什么的 : exec >> (command)

转载 作者:行者123 更新时间:2023-11-29 08:49:34 26 4
gpt4 key购买 nike

我看到了herehere too以下构造:

exec > >(tee -a script.log)

我知道tee命令是什么,(command...)通常表示在子shell中执行command,exec用程序替换当前shell,比如exec ls,(但这里没有命令)另外 >> 是什么意思?

谁能澄清一下这个黑暗巫师?

exec >{space}> (command)

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

最佳答案

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

那样的话,你可以正常使用你的bash shell,你不会看到任何不同(大部分),但是所有的输出都会显示在你的屏幕上script.log 文件中。

来自 exec manpages :

If command is supplied, it replaces the shell without creating a new process. If no command is specified, redirections may be used to affect the current shell environment.

>(tee -a script.log) 魔术创建了一个管道,因此我们不会像我们那样写入文件(使用 >> script.log 在在这种情况下),我们写入进程 tee -a script.log,它执行相同的操作。出于某种我不知道的原因,使用 >>> 不起作用,但写入命名管道有效。 Source here

关于bash - 这到底是做什么的 : exec >> (command),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6161328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com