【Linux中的错误重定向你真的懂吗】教程文章相关的互联网学习教程文章

linux – 将手册页输出重定向到文件会产生双字母【代码】

我将man djpeg的输出重定向到一个文本文件中,以便在我学习使用它时可以引用它.我的指示是男人djpeg> TextFile.txt的.但是,输出看起来像这样:LS(1) BSD General Commands Manual LS(1)NNAAMMEEllss -- list directory contentsSSYYNNOOPPSSIISSllss [--AABBCCFFGGHHLLOOPPRRSSTTUUWW@@aabbccddeeffgghhiikkllmmnnooppqqrrssttuuwwxx11] [_f_i_l_e _._._.]DDEESSCCRRIIPPTTIIOONNFor each o...

编写我自己的linux shell I / O重定向’>’函数【代码】

我正在编写重定向函数,将命令的输出写入给定的文件名. 例如: echo Hello World> hello.txt会将’Hello World’写入hello.txt. ls -al> file_list.txt会将当前目录中所有文件/目录名称的列表写入file_list.txt. 到目前为止,我的功能定义为:int my_redirect(char **args, int count) {if (count == 0 || args[count + 1] == NULL) {printf("The redirect function must follow a command and be followed by a target filename.\n"...

linux – 将数据包重定向到用户空间TCP堆栈而不修改应用程序

我正在使用基于在Linux下运行的Linux堆栈的用户空间TCP堆栈.不幸的是,它要求应用程序专门调用自己的正常套接字API函数的修改版本,然后使用libpcap来获取它接收到的响应传入数据包. 现在我的问题是,是否有任何方法可以将数据包从应用程序重定向到此TCP堆栈,而无需修改应用程序本身.换句话说,我正在寻找一种方法来拦截对套接字API的调用,并将它们重定向到等效的用户空间. 希望它或多或少清楚我的意思.解决方法:两个想法(未经测试,首先...

linux – 如何实现shell输入重定向【代码】

如何编写一个从文件中收集内容并输入命令的shell?它看起来像:$command<输入文件我不知道如何开始.解决方法:以wc为例:$wc < input_file > output_file说明: > wc:这是您正在调用的命令(或内置shell)>< input_file:从input_file读取输入>> output_file’:写输出到output_file` 请注意,许多命令将接受输入文件名作为其cmdline参数之一(不使用<),例如:> grep pattern file_name> awk{print}’file_name> sed’s / hi / bye / g...

linux – 将尾部输出重定向到程序中【代码】

我想使用tail作为stdin从文本文件中发送程序最新的行. 首先,我向程序回显一些每次都相同的输入,然后从输入文件中发送尾输入,该输入文件应首先通过sed处理.以下是我期望工作的命令行.但是当程序运行时,它只接收回声输入,而不是尾部输入.(echo "new" && tail -f ~/inputfile 2> /dev/null | sed -n -r 'some regex' && cat) | ./program但是,以下工作完全符合预期,将所有内容打印到终端:echo "new" && tail -f ~/inputfile 2> /dev/...

linux – 将程序的输出重定向到旋转文件【代码】

我试图将连续运行的程序的输出重定向到文件说error_log. 我使用的命令看起来像这样,myprogram.sh连续生成数据并写入/ var / log / httpd / error_log > myprogram.sh>>在/ var /日志/的httpd / error_log中 现在我使用logrotate每小时旋转此文件.我在logrotate中使用create命令,以便重命名原始文件并创建一个新文件.logrotate配置看起来像/var/log/httpd/error_log { # copytruncatecreaterotate 4dateextmissingokifempty... }但是...

linux – 如何将tail -f输出重定向到curl(HTTP流)【代码】

我想从嵌入式设备中收集实时日志.该设备的命令有限.如果我可以通过shell脚本来做它会很棒. 那么,我可以做一些像tail -f /var/logs/some-log.log |这样的事情curl -X POST –data-urlencode @ – http://< log-collaction.website>? 我尝试了很多方法,但都失败了.例如:ping www.google.com | while read -r LINE; do curl -X POST --silent --data-binary $LINE "http://localhost:8080/"; done上面的命令有效,但它会逐行发布消...

linux – Xinetd禁用stderr重定向

我只是为我的二进制文件设置xinetd来作为服务运行.但是在我看来,stdout和stderr都被重定向到套接字流. 无论如何禁用stderr?我尝试在xinetd设置的服务器字段:server = binary 2> / dev / null但它不起作用 谢谢解决方法:我把它放在一个bash包装器中,将stderr重定向到null,然后将脚本放在xinetd配置中.

linux – 将文件重定向到stdout – 反向重定向

我在linux和unsquashfs程序下遇到了一些不典型的麻烦. 通常我们将stdout重定向到指定的文件,但我想要反向.在fly文件上创建的重定向到stdout,没有真正的文件创建. unsquashfs可以提取指定的文件,但文件完全重写.这导致命名管道不可能使用.我需要它,因为我想避免创建消耗空间和IO的临时大提取文件.我必须在命令管道中使用输出.不幸的是,unsquashfs对提取文件没有’ – ‘选项,类似于’tar’或’zip’命令.如果没有unsquashfs修复,我可...

linux – 在Bash中,一旦命令失败,如何不创建重定向输出文件【代码】

通常我们可以将命令输出重定向到文件,如下所示:cat a.txt >> output.txt正如我尝试的那样,如果cat失败,仍会创建output.txt,这不是我的预期.我知道我可以这样测试:if [ "$?" -ne "0"]; thenrm output.txt fi但是,在我的cat执行之前已经存在这样的output.txt时,这可能会导致一些问题开销.所以我还需要在cat之前存储output.txt状态,如果在执行cat之前已经有这样的output.txt,我不应该错误地输出output.txt …但是在竞争条件下可能仍...

linux – shell重定向位置的区别【代码】

这两行之间有什么区别吗?for i in $(seq 1 10); do echo $i - `date`; sleep 1; done >> /tmp/output.txtfor i in $(seq 1 10); do echo $i - `date` >> /tmp/output.txt ; sleep 1; done因为Robert told me表示第一个只在for循环外部产生I / O OP. 但是,如果我输入tail -f /tmp/output.txt,这行为方式完全相同.解决方法:如果他们成功,他们也会这样做.但是,如果因任何原因失败,可能会有明显的差异. 第一个:for ...; do# things d...

linux – 将shell的输出重定向到带有&符号的文件,在输出中返回一些其他命令【代码】

我有一个简单的shell脚本,其中包含echo语句,如下所示.-bash-3.2$vi dummy.sh echo "hi"如果我只是执行该文件,它会将“hi”作为输出写入名为“text”的文件,如下所示-bash-3.2$ksh dummy.sh > text -bash-3.2$cat text hi -bash-3.2$现在,如果我用&执行相同的脚本最后,用其他命令文本编写hi输出,如下所示.-bash-3.2$ksh dummy.sh > text & [1] 11208 -bash-3.2$cat text hi [1]+ Done ksh dummy.sh > text -bas...

Linux Bash shell脚本中的IO重定向无法重新创建已移动/已删除的文件?【代码】

我对Linux上的shell编程很新,在我的Linux实例中,我正在以下列方式将程序的stdout和stderr重定向到两个文件并在后台运行它myprog > run.log 2>> err.log &这很好,我得到了我想要的行为 现在有另一个后台进程监视run.log和err.log,如果日志文件超过某个阈值,则将它们移动到其他文件名. 例如mv err.log err [date-time] .log 我的期望是,在此文件移动发生后,myrog输出重定向将再次创建err.log,新输出将写入该新文件.但是,在我的日志文...

linux – 如何将cppcheck的输出重定向到文件中?【代码】

我想将cppcheck的输出重定向到文本文件.它会向stdout输出大量信息但如果我执行cppcheck –enable = all –verbose. &GT /srv/samba/share/tmp/cppcheck.out,我没有得到文件中的所有信息,为什么不呢?解决方法:最新的开发版cppcheck包含一个新选项:--output-file=<file name>添加此选项可将输出定向到特定文件. 用法示例: 默认情况下,cppcheck将其结果打印到stdout:$cppcheck --enable=all test.cpp Checking test.cpp ...[test....

linux – 解释这个bash重定向行为【代码】

我正在尝试重定向和管道,并且不了解某些行为.我有这个片段在每个stderr和stdout上生成一行:(echo stdout; echo stderr 1>&2)它似乎工作正常,(尝试> / devnull和2> / dev / null). 但是这三个命令的行为让我困惑:(echo stdout; echo stderr 1>&2) > >(wc -l) stderr 1 (echo stdout; echo stderr 1>&2) 2> >(wc -l) stdout 1 (echo stdout; echo stderr 1>&2) > >(wc -l) 2> >(wc -l) 2 (empty)为什么最后一个命令组合了两个流?或...