【linux – / dev / console动态重定向】教程文章相关的互联网学习教程文章

在Linux crontab中,我的程序的stderr必须重定向,为什么?【代码】

我写了一个程序,可以输出到stderr.当我通过Linux crontab运行它时,我必须重定向stderr.如果没有,程序将以SIGPIPE退出.为什么? 不好45 10 * * * /home/sandy/test > /home/sandy/test.log &好45 10 * * * /home/sandy/test > /home/sandy/test.log 2>&1 &解决方法:您正在后台运行命令(& at the end).这意味着cron已经开始运行命令的shell将不会等待它的完成并在命令启动后立即终止.如果您的程序现在尝试写入stderr,则没有任何内容连...

linux打印到STDOUT并使用单个命令重定向到文件【代码】

有没有办法将命令的输出回显到终端并使用单个文件重定向到文件,而不是在csh中使用2个单独的命令(由于历史原因,我必须使用csh来实现此目的).目前我这样做echo "Hello World!" echo "Hello World!" > textfileecho "next line blah blah" echo "next line blah blah" >> textfile解决方法:这正是发球台的用途:echo "Hello World!" | tee textfile对于多个输出,您可以使用(echo "Hello World!"echo "next line blah blah" ) | tee te...

linux – Bash脚本 – 将子脚本stderr重定向到父级的stdout【代码】

我确定我遗漏了一些简单的东西,但我正在使用一个执行脚本来调用一些实用程序脚本,我想通过一个管道处理来自实用程序的所有输出.我的问题是实用程序使用stderr报告错误情况,但我无法捕获它以在父脚本中使用. 父脚本:#!/bin/bash child 2>&1 >/dev/null儿童剧本#!/bin/bash echo "Print" echo "Error" 1>&2我期望的是,孩子的stderr(以及它的所有命令)被重定向到stdout(因此没有输出),但是当我执行parent时,我得到错误echo’d到终端(...

linux – 重定向输出在使用tee时挂起【代码】

我想在bash脚本中提供一个可选的日志记录参数,并希望使用exec从头开始管道.但是,打开tee进程导致脚本挂起,我相信因为stdout没有关闭:# Output to a log file, if set if [[ $OPT_LOG ]]; thenexec > >(tee -a $OPT_LOG) fi我试图结束:exec >&-但它仍然挂起 – 是否有另一种正确关闭tee的方法,以便脚本在执行结束时正确退出?解决方法:看起来,出于某种原因,使用tee会停止显示提示符($PS1),因为shell脚本尚未退出.作为一种解决方法...

linux – 重定向后的参数做了什么吗?【代码】

重定向后是否有任何参数被忽略,或者它是否有任何意外后果? 我很惊讶地发现我在bash脚本中输入的拼写错误完全没有区别,因为它是在重定向后指定的.例如.我期待它抱怨这样的事情./foo.sh > foo2.log whoops I made a typo但它不会引发任何错误.我必须添加一个半冒号来实际让它作为命令和错误运行,类似于./foo.sh > foo2.log; whoops I made a typo更令我惊讶的是,linux在重定向后还没有放弃例如./foo.sh > foo2.log whoops I made a ...

Linux文件描述符 – 获取当前重定向stdout文件?【代码】

我正在尝试获取当前的stdout重定向,并遇到一些麻烦. 我有一个总是使用stdout重定向运行的脚本,即:myscript.sh > /tmp/output.log在myscript.sh中,我需要找出它输出的文件. 我正在尝试这个(不工作):logfile=$(readlink -f /proc/self/fd/1)例如,那就是输出logfile = /tmp/sflq.r3f.我需要找到它会转到/tmp/output.log 这甚至可能吗? 如果重要,我正在使用korn shell 谢谢!解决方法:$()使用一个管道(或者它出现在ksh中 – 一个临时...

linux – 使用awk重定向命令输出【代码】

我需要将输出重定向到文件并添加日期时间.我试试这个:make all | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }' > file我预计:2011-12-13 15:00:50 compilation....2011-12-13 15:00:52 still compilation2011-12-13 15:00:55 compilation...我怎样才能做到这一点?如果我在屏幕上删除“>文件”,我看到正确的输出.但我会将其重定向到文件. 有谁能够帮我?解决方法:尝试这样的tee命令:make all | awk '{ print strftime("...

将两个进程的stdout重定向到Linux C中的另一个进程的stdin【代码】

我遇到了关于多进程重定向stdout的问题. 假设我有进程A,我在A中使用fork(),然后我得到进程A和B.我在B中使用fork(),最后我得到进程A,B和C.B和C都在实现其他程序EXEC(). 现在,我尝试用两个管道将A和B的stdout重定向到C的stdin.#include<unistd.h> #include<stdio.h> #include<sty/types.h> int main() {int AtoC [2];pipe(AtoC);int fd1,fd2;fd1=fork();if(fd1>0){/***In process A, I do the following steps: ***/close(AtoC[0]);d...

linux – 如何简化bash中的重复重定向【代码】

如何在bash中简化以下命令行:make install 1>/dev/null && update-initramfs -k all -u 1>/dev/null我想将两个命令的所有stdout输出重定向到/ dev / null.解决方法:一个简单的简化是删除1,因为它们是输出重定向的默认文件描述符.make install >/dev/null && update-initramfs -k all -u >/dev/null但我怀疑您正在寻找一个命令组来聚合标准输出:{ make install && update-initramfs -k all -u; } > /dev/null

linux – 从后台进程重定向stdout和stderr【代码】

我有一个名为foo的脚本,它运行程序a.exe并将计时统计信息发送到文件time.log#!/bin/bash date 1>> time.log (time ./a.exe) 2>> time.log如果我在终端的后台运行脚本并保持shell打开直到a.exe完成,但是如果我在后台运行脚本并退出终端(a.exe需要很长时间才能运行)foo & exit当我回来时,a.exe已经执行但时间统计信息没有出现在我的日志文件中.有人知道为什么吗?在我关闭父shell之后有没有办法获取时序统计信息? 谢谢解决方法: no...

linux – iptables从外部接口重定向到loopback的端口?【代码】

我尝试将端口从我的lxc-container重定向到环回. 我的lxc-container配置了lxcbr1网桥11.0.3.1. 我尝试将netcat从主机连接到lxc,从lxc连接到主机.成功. 本地主机:# nc -l 1088LXC:# nc 11.0.3.1 1088 Hello!和localhost见消息:“你好!”.成功! 当我以这种方式重定向端口时:# iptables -t nat -A PREROUTING -i lxcbr1 -p tcp -d 11.0.3.1 --dport 1088 -j DNAT --to-destination 127.0.0.1:1088 # nc -l 127.0.0.1 1088此后,我...

linux – 具有重定向输出的Perl颜色说明符【代码】

我有一个使用Term :: ANSIColor的Perl脚本.过去,如果我将输出重定向到文件> file.txt然后文件只包含文本,而不是颜色代码^ [[0m 在我的机器上改变了一些东西,Ubuntu 10.04,这样重定向输出包括指定颜色的这些特殊字符. 知道如何解决这个问题吗?我可以从perl脚本中检测输出重定向并跳过颜色部分吗? 谢谢!解决方法:您可以使用IO::Interactive软件包测试是否以交互方式运行:use IO::Interactive qw(is_interactive);if (is_interact...

linux 重定向类型 超级块 i节点【图】

超级块:定义文件系统的元数据(总大小、块大小、空闲、......);在格式化的时候确定 查看超级块信息:tune2fs -l 目录i节点:定义文件的元数据(名称、大小、存放位置、权限、修改时间、.......);创建的时候确定,修改的时候更新 查看i节点信息:stat 文件

linux shell数据重定向(输入重定向与输出重定向)详细分析

linux shell下常用输入输出操作符是:1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0 0代表:/dev/stdin 2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1 1代表:/dev/stdout 3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr原文链接:https://www.cnblogs.com/chengmo/archive/2010/...

Linux利用重定向实现两个会话窗口的交互【图】

1、打开两个会话窗口,全部进入/proc/$$/fd目录下,执行ll2、在设备符号/dev/pts/1的窗口执行exec 1> /dev/pts/2将当前会话的正确输出 输出到/dev/pts/2对应的会话窗口中 3、执行正确命令,输出成功打印在设备符号为/dev/pts/2的会话窗口中 4、执行错误命令,输出依然打印在本窗口