linux中标准输出stdout的理解问题

linux中标准输出stdout的理解问题,第1张

stdout其实没有楼主说的这么大,这个处理流程跟内核的处理机制有关,cat是到对端的server 的cache中,本地只是把分节传过来的cache做 *** 作写入,这个输出是不会显示在终端上的。

大概就是这么个意思,不对之处共同学习一下。

Abstract:

1) Linux Shell 命令的标准输入、标准输出、标准错误,及其重定位;2)Linux Shell *** 作自定义文件描述符;

文件描述符是与文件相关联的一些整数,他们保持与已打开文件的关联。众所周知的文件描述符是标准输入stdin、标准输出stdout、标准错误stderr,我们可以重定位这些文件描述符关联文件的内容到另外一个文件文件描述符。

1. Linux Shell 命令的标准输入、标准输出、标准错误

当我们在编写 shell 脚本时,我们会非常频繁地 *** 作执行命令的标准输入stdin、标准输出stdout、标准错误stderr。过滤 shell 脚本或者执行命令的输出信息并且把它们重定位到特定的地方,成了我们分析脚本执行情况的必要工作。当我们执行脚本文件或者执行一个 shell 命令的时候,单从终端输出我们很难区分哪些是标准输出,哪些是标准错误。然而,我们把这些信息重定向特定的地方,以便于我们分析脚本文件及 shell 命令的执行情况。

文件描述符是与打开文件或者数据流相关联的整数,0、1、2 是系统保留的三个文件描述符,分别对应标准输入、标准输出、标准错误。

Linux Shell 使用 " >" ">>" 进行对文件描述符进行重定位。

">" 与 ">>" 的作用是不一样的,前者使用本次输出内容替换原有文件的内容,后者则是把本次输出追加到原文件的后面。

在对文件描述符进行详细分析之前,先执行以下命令,为后面的实验 *** 作准备一些必要的文件:

echo -e "\e[4231m --- Prepare resource file ---\e[0m"

echo "This is example text 1." >temp.txt

echo "This is example text 2." >>temp.txt

cat temp.txt

echo "a1" >a1

echo "a2" >a2

echo "a3" >a3

sudo chmod 000 a3

ls -alF a*


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7603054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存