栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用`exec 1> file`后,如何停止将STDOUT重定向到文件并恢复STDOUT的正常运行?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用`exec 1> file`后,如何停止将STDOUT重定向到文件并恢复STDOUT的正常运行?

Q1

在执行初始操作之前,您必须准备恢复

exec

exec 3>&1 1>file

要稍后恢复原始标准输出:

exec 1>&3 3>&-

第一个

exec
将原始文件描述符1(标准输出)复制到文件描述符3,然后将标准输出重定向到命名文件。第二个
exec
再次将文件描述符3复制到标准输出,然后关闭文件描述符3。

Q2

这有点开放。可以在C代码级别或Shell命令行级别对其进行描述。

exec 1>file

只需将shell的标准输出(1)重定向到命名文件。文件描述符现在引用命名的文件;写入标准输出的所有输出都将进入该文件。(请注意,交互式外壳程序中的提示被写入标准错误,而不是标准输出。)

exec 1>&-

只需关闭外壳的标准输出即可。现在没有用于标准输出的打开文件。如果程序在没有标准输出的情况下运行,则可能会感到不高兴。

Q3

如果关闭标准输入,标准输出和标准错误的所有三个,则交互式外壳将在您关闭标准输入时退出(因为它在读取下一个命令时将得到EOF)。Shell脚本将继续运行,但是它运行的程序可能会感到烦躁,因为可以确保它们具有3个打开的文件通道-
标准输入,标准输出,标准错误-并且当您的Shell运行它们时,如果没有其他I /
O重定向,那么它们将无法获得承诺的文件通道,并且可能会崩溃(并且您唯一会知道的是,命令的退出状态可能不会为零,即成功)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号