Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash重定向与“合并”;“双管”;符号_Linux_Bash_Redirect - Fatal编程技术网

Linux Bash重定向与“合并”;“双管”;符号

Linux Bash重定向与“合并”;“双管”;符号,linux,bash,redirect,Linux,Bash,Redirect,是否可以将重定向输出与| |结合到文件和管道中?(不知道这叫什么) 例如: (wget -qO- example.com/duff || exit) | some_processing >> outfile.txt >如果WGET失败,我想退出,不运行某个处理或创建空白文件。< P> 是一个逻辑或。不创建outfile.txt将需要更复杂的语法;正如您所写的(正常方式),outfile.txt甚至在运行wget之前就创建了 老实说,如果左侧命令失败,我想不出任何方法来强制管道不

是否可以将重定向输出与| |结合到文件和管道中?(不知道这叫什么)

例如:

(wget -qO- example.com/duff || exit) | some_processing >> outfile.txt

<> >如果WGET失败,我想退出,不运行某个处理或创建空白文件。

< P> <代码> <代码>是一个逻辑或。不创建
outfile.txt
将需要更复杂的语法;正如您所写的(正常方式),
outfile.txt甚至在运行
wget
之前就创建了


老实说,如果左侧命令失败,我想不出任何方法来强制管道不发生。如果我是你,我会写一个Perl脚本。

我想你基本上回答了如何做

#!/bin/bash

RESULT=`wget -qO- example.com/duff`

if [ $? -eq 0 ];
then
  echo $RESULT | some_processing >> outfile.txt
fi
<> >如果WGET失败,我想退出,不运行某个处理或创建空白文件。< /P>
wget wget-qO-example.com/duff

如果[[$?-ne 0]]/$?表示返回值,在编写良好的程序中,该值应为零

然后

fi


我认为这将实现你想要的


([$?-eq 0]&&some_processing>>outfile.txt)注意,检查返回代码可能不够。还可以检查返回的HTTP状态,例如404。。。。。etc

我想这应该是一条直线?这很好,但其他解决方案很乐意接受
some_processing >> outfile.txt