File 什么是cat文件名1 2>;文件名2
我有这样一个shell脚本File 什么是cat文件名1 2>;文件名2,file,shell,File,Shell,我有这样一个shell脚本 cat file1.dat 2> file2.log 有人能解释一下这是什么意思吗。我找了很多,但什么也没找到。我查过这一个。但是没有找到这个2>。我对shell脚本完全是个新手。非常感谢您的帮助。2>表示重定向文件描述符2,它通常是stderr。而没有2则是标准输出。2>表示重定向文件描述符2,通常是标准输出。如果没有2,它是标准输出。2>是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是cat。它重定向文件描述符2,这是标
cat file1.dat 2> file2.log
有人能解释一下这是什么意思吗。我找了很多,但什么也没找到。我查过这一个。但是没有找到这个
2>
。我对shell脚本完全是个新手。非常感谢您的帮助。2>
表示重定向文件描述符2,它通常是stderr。而没有2则是标准输出。2>
表示重定向文件描述符2,通常是标准输出。如果没有2,它是标准输出。2>
是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是cat
。它重定向文件描述符2,这是标准错误流
如果您的
cat
命令有任何错误(file1.dat
不存在,或者您没有读取它的权限,或者其他任何内容),则来自cat
的错误消息将进入file2.log
而不是进入您的终端(或shell错误流最初连接的任何位置).2>
是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是cat
。它重定向文件描述符2,这是标准错误流
如果您的
cat
命令有任何错误(file1.dat
不存在,或者您没有读取它的权限,或者其他任何内容),则来自cat
的错误消息将进入file2.log
而不是进入您的终端(或shell错误流最初连接的任何位置).这就是说,将cat file1.dat
的输出发送到/dev/stderr
到file2.log
本质上,cat file1.dat 2>file2.log
将打印到STDERR的所有文本发送到file2.log
以下是一些其他示例:
cat file1.dat 1>file2.log#将标准输出发送到file2.log
cat file1.dat 1>&2#将标准输出发送到标准输出
cat file1.dat&>file2.log#将STDERR和STDOUT都发送到file2.log
cat file1.dat 2>&1#将STDERR发送到STDOUT
而且,根据您的shell,可能会支持更高级的I/O重定向 也就是说,将
cat file1.dat
的输出发送到/dev/stderr
文件2.log
本质上,cat file1.dat 2>file2.log
将打印到STDERR的所有文本发送到file2.log
以下是一些其他示例:
cat file1.dat 1>file2.log#将标准输出发送到file2.log
cat file1.dat 1>&2#将标准输出发送到标准输出
cat file1.dat&>file2.log#将STDERR和STDOUT都发送到file2.log
cat file1.dat 2>&1#将STDERR发送到STDOUT
而且,根据您的shell,可能会支持更高级的I/O重定向
2>
是一个shell构造。您在cat
文档中找不到它
通常(在shell上下文中),
和
表示将std错误输出重定向到file2.txt
这似乎是一个奇怪的结构。请注意,此代码将仅捕获错误消息。
从cat
获取错误消息的通常方法是该文件不存在
此代码的另一个问题是单个
指示“创建一个新文件2.txt”(即使已经存在)
就你的目的而言,这可能就足够了。在许多情况下,人们希望看到活动的历史。在这种情况下,您需要使用append
重定向形式,使用2>>file2.txt
您需要更多地了解这里的上下文,才能对您继承的代码为何设置为这样做做出进一步有意义的评论
IHTH是一个shell构造。您在
cat
文档中找不到它
通常(在shell上下文中),
和
表示将std错误输出重定向到file2.txt
这似乎是一个奇怪的结构。请注意,此代码将仅捕获错误消息。
从cat
获取错误消息的通常方法是该文件不存在
此代码的另一个问题是单个
指示“创建一个新文件2.txt”(即使已经存在)
就你的目的而言,这可能就足够了。在许多情况下,人们希望看到活动的历史。在这种情况下,您需要使用append
重定向形式,使用2>>file2.txt
您需要更多地了解这里的上下文,才能对您继承的代码为何设置为这样做做出进一步有意义的评论
IHTH这是bash的通用规则(或者不管您使用什么shell,其他shell可能有一些不同的规则),与cat无关。所以搜索cat文档是没有帮助的。这对于bash来说是通用的(或者您使用的任何shell,其他shell可能有一些不同的规则),与cat无关。因此,搜索cat文档是没有帮助的。