我正在寻找一种方法来redirect交互式bash中所有的stderrstream(理想情况下,它的调用父进程)。
我不想从每个单独的命令redirectstderrstream,我可以通过将2> a_file附加到每个命令来做到这一点。
默认情况下,这些stderrstream被redirect到交互式bash的stdout。 我想让他们在这个交互式bash过程的stderr,以防止我的stdout被错误信息污染,并能够分开处理他们。
有任何想法吗?
Windows Bash和Visual Studio代码:如何将bash作为运行任务启动?
在不同用户的情况下在另一个shell脚本中运行一个shell脚本
核心转储的消息不会在STDERR中捕获
.bashrc代码在首次login时每天执行一次
我如何让自己创build的shell与.sh文件一起工作
我还没有find答案…但也许它实际上是一个tty参数。 有谁知道一些关于tty / interactive shell责任来处理stderr吗?
在bash脚本中错误的replace
我可以使用Google翻译让我的RaspBerry Pi按需求以不同的语言发言吗?
在bash或python中是否有一种方法可以从一个脚本获取输出,并使用另一个脚本与其进行交互?
如何得到没有。 的行计数匹配来自文件夹中的所有文件的string
在bash中使用exec内建:
exec 2> /tmp/myfile
$ bash -i 2> stderr.log $
用双引号试试你的命令,如下所示:
ssh remotehost "command" 2>~/stderr
在本地系统上使用远程主机上的远程文件进行测试。
$ ssh remotehost "tail x;head x" 2>~/stderr $ cat stderr tail: cannot open `x' for reading: No such file or directory head: cannot open `x' for reading: No such file or directory
我没有看到你的问题,按照设计工作:
$ ssh remotehost 'ls nosuchfile; ls /etc/passwd' >/tmp/stdout 2>/tmp/stderr $ cat /tmp/stdout /etc/passwd $ cat /tmp/stderr nosuchfile not found
两件事情:
在远程ssh命令中使用2>&1导致错误在本地tar文件中结束,从而导致“中断”备份。
我的建议是将远端的stderr重定向到一个文件,稍后再提取,以防出错。
例:
ssh -t remotehost tar -cf - /mnt/backup 2>backup.err > localbackup.tar EXITSTATUS=$? if [ $EXITSTATUS != "0" ] then echo Error occurred! ssh remotehost cat backup.err >localbackup.errors cat localbackup.errors ssh remotehost rm backup.err else echo Backup completed successfully! ssh remotehost rm backup.err fi
我发现一个好方法是用圆括号'()'(启动一个子shell)或大括号'{}'(无子shell;更快)包围命令:
{ cmd1 cmd2 ... cmdN } 2> error.log
当然,这可以在1行上完成:
{ cmd1; cmd2; ... cmdN; } 2> error.log
试过ssh -t在远端创建一个伪TTY?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。