【将两个进程的stdout重定向到Linux C中的另一个进程的stdin】教程文章相关的互联网学习教程文章

Linux中的错误重定向你真的懂吗【代码】

在很多定时任务里、shell里我们往往能看到 "2>&1",却不知道这背后的原理。举个例子: * 1 * * * test.sh > /dev/null 2>&1这里的”2>&1“的意思是把标准错误重定向到标准输出。 0:代表标准输入 1:代表标准输出 2:代表标准错误 上面的例子"2>&1"已经知道是将标准错误重定向到标准输出,而test.sh的标准输出就是/dev/null,所以这条语句的结果(标准输出、标准错误)都会打到/dev/null。 用c来表示可以更加清楚细节: int fd = op...

linux-wget:如果它指向位置X,请不要遵循重定向,否则

当我读到here时,可以很容易地通过–max-redirect 0来关闭重定向.但是,如果存在两种重定向,那就是好重定向和坏重定向. 就我而言,良好的重定向是: http://someaddres.com/888.html-> http://someaddres.com/some-string-in-url-describing-page.html 错误的重定向是: http://someaddres.com/555.html-> http://someaddres.com/ 我该怎么做才能使好的重定向无效?解决方法:我可以想到的唯一方法就是关闭重定向,然后解析响应(我建议使...

linux-将stdout和stderr重定向到文件,并将stderr重定向到stdout【代码】

以下将stdout写入日志文件并输出stderr:bash script.sh >> out.log这再次将stdout和stderr都写入日志文件:bash script.sh >> out.log 2>&1如何结合两个功能,以便将stdout和stderr记录到文件中,并将stderr通过电子邮件发送到我的收件箱中?解决方法: bash script.sh 2>&1 >> out.log | tee -a out.log首先,我将stdout重定向到文件,将stderr重定向到stdout(stdout行重定向到out.log文件,并将stderr重定向到管道). tee命令将stdin打...

linux-为什么直接打印到控制台/终端比重定向慢?

为什么要在终端上打印多行而不是将其重定向到似乎几乎是即时的文件要花费更多的时间?解决方法:首先,终端运行缓慢.对于每次更新,他们必须: >解析并解释任何控制代码.>解析,解释和渲染任何转义码.>解释并解释任何多字节和组合字符.>更新适当的屏幕和滚动缓冲区.>使用适当的字体进行渲染. 如果您使用screen或tmux,则可能会再次执行上述所有操作. 同时,要重定向到文件,您只需: >将数据转储到RAM(以便稍后写回存储). 此步骤非常小,甚...

linux-重定向到在bash中存储awk的变量【代码】

cat list.txt1苹果4 30 f2马铃薯2 40 v3橙色5 10 f4颗葡萄10 8 f 脚本:getlist ::if [[ "$@" == *[f]* ]] ; thenawkv1 = $(grep f | awk '{ print $2 $3 }') elseawkv1 = $(awk '{ print $2 $4 $5 }') ficat list.txt | $(awkv1)我有一个变量awkv1,它根据参数’f’存储值.但这是行不通的.运行:: getlist f不会执行任何操作. 它应该像这样工作:如果在参数中传递了’f’,则:: cat list.txt | grep f | awk{print $2 $3}’ 否则:...

Linux 修改环境变量,重定向

1.Linux下更改(当前用户)环境变量:在terminal下输入vim ~/.profile进入后,在最后一行添加PATH="-----------------:$PATH",添加了之后直接输入文件名 -->回车 给所有用户添加环境变量:/etc/profile,在最后一行添加PATH="-----------------:$PATH",添加了之后直接输入文件名 -->回车 2.查看环境变量:env 3.export PATH="--------------:$PATH" export AA="star" echo $star (以上命令将会被执行)echo 4.echo 换行 echo -n ...

linux-Perf输出无法重定向到文件

我正在Ubuntu(12.0.4 LTS)上使用perf(一种Linux工具),目前,我一直试图将工具的输出重定向到文件.许多帖子都解决了这个问题,但是提议的解决方案对我没有用. 我在这里尝试的是:pid的跟踪统计信息并将它们存储在文件中.在一个终端中,我运行性能工具,在另一个终端中,我使用kill -INT命令(sudo kill -INT $pid)杀死性能进程.受网路上各种解决方案(例如how to save ouput of perf (Linux tool) to a file?)的启发,我尝试了不同的命令组合...

linux输入输出重定向

使用 > 或 >> 时,默认为标准输出 1 重定向, 所以 > file 就是 1> file 的省写,1 与 > 之间不能有空格。 比如ls -l > a.txt就是ls -l 1> a.txt 数字 0, 1, 2 与它后面的操作符 > 或 < 等 总是一个整体 2>&1 表示把 标准错误输出 重定向到 标准输出, 这在控制台下看到的效果 2>&1 和 1>&2 可能是一样的,因为标准输出或标准错误输出的目的地默认都为屏幕。 2>&1 是最常见到的写,这样就是把错误信息与标准输出都收集到一块了 &> fi...

Linux Shell中的I / O流重定向. Shell如何处理带有重定向的命令?【代码】

目前,我正在编写一个小的外壳程序(重定向,管道,exec等).一直在试图弄清楚Linux Shell解决I / O重定向所采取的步骤. 关于我需要帮助的一些问题: >寻找重定向时,shell从命令行读取哪个方向?从左到右还是相反?使用递归?>外壳需要寻找什么情况? (不确定是否有很多或只有一对可以包含很多变化) 无论如何,我能想到的是一些(如果我错了,请纠正我):cmd > file1 # stdout of cmd goes to filecmd file1 > file2 # stdout of cmd...

linux-GNU Parallel-将输出重定向到具有特定名称的文件【代码】

在bash中,我正在运行GnuPG来解密某些文件,并且我希望将输出重定向到具有相同名称但具有不同扩展名的文件.基本上,如果我的文件名为file1.sc.xz.gpg运行GnuPG工具后出现的文件,我想存储在另一个名为file1.sc.xz 我目前正在尝试find . -type f | parallel "gpg {} > {}.sc.xz"但这会导致一个名为file1.sc.xz.gpg.sc.xz的文件.我怎样才能做到这一点? 以后的编辑:我想在一个bash命令中执行此操作,而无需事先知道文件名.解决方法:您可以...

linux-将多个标准输出重定向到单个文件【代码】

我有一个使用NFS在多台计算机上运行的程序,我想将其所有输出记录到一个文件中.我可以只运行./my_program>>每台机器上的文件名还是我应该注意的并发问题?因为我只是追加,所以我认为不会有问题,但我只是在尝试确保.解决方法:这可能有效,但是是的,您将遇到并发问题,并且日志文件基本上是无法识别的. 我建议每台计算机都有一个日志文件,然后定期(例如每晚)将文件与计算机名称连接在一起作为文件名:for i in "/path/to/logfiles/*"; d...

linux-KornShell(ksh)重定向【代码】

我有一个脚本,可以将std out / std err重定向如下:SCRIPTS=/test/scripts LOG=/test/log echo $SCRIPTS echo $LOG $SCRIPTS/dmm_algo_ofac_daily_sched.ksh >> $LOG/test12.log 2>&1该脚本无法展开$SCRIPTS和$LOG 如果我按以下方式替换它:/test/scripts/daily_sched.ksh >> /test/log/test12.log 2>&1它抱怨如下:: bad file unit numberd/test.ksh: line 33: 1另外,我无法从保存脚本的目录中调用脚本.如果我做 ./test.ksh它给我...

linux打印重定向丢失问题【代码】

这是由于缓冲区造成的,解决方法如下: 1 #include <stdio.h>2 3 int main()4 {5 fflush(stdout);6 setvbuf(stdout, NULL, _IONBF, 0);7 8 printf("Hello World!\n");9 while(1); 10 11 return 0; 12 }在打印前加上5,6行

linux-检查bash脚本中是否有标准输出重定向【代码】

我需要检查程序的输出是否被重定向;如果是,我需要保留并通过邮件发送. 例:$myprogram -param1 -param2 -param3 > /home/polly/log.txtmyprogram.sh:if 'redirection is not empty'; then cat <redirection name> | mailx -s "This is a test email." polly@gmail.com fi 解决方法:您可以检查stdout是否为终端.当stdout重定向或通过管道传输时,它将不是终端.您可以将test命令与-t选项一起使用以获取以下信息:if [ -t 1 ] ; the...

linux – DHCP服务器将任何URL重定向到登录页面

我有一个Linux DHCP服务器,我需要将所有网络流量重定向到一个登陆页面,该登陆页面将提供有关如何在网络上注册计算机的说明. 无论用户输入什么URL,都需要将用户重定向到网页(在DHCP服务器上). 即:用户输入google.com,他们会立即重定向到192.168.10.1.此DHCP服务器永远不会用于访问Web.一旦用户获得从登录页面注册其计算机的指令,它们将被列入该特定DHCP服务器的黑名单,并被迫从主DHCP服务器请求IP. 我该如何创建这样的重定向?解决...