Answers:
的 >
重定向将命令输出(stdout
而不是stderr
-你用2>
的那个)到后指定的文件。如果已经存在,该文件将被覆盖。
此行为对于您的第一个命令很有用:如果存在现有文件,则应将其删除并替换为新文件。
但是,由于需要附加所有其他输出而不是替换先前的输出,因此需要使用append-redirector >>
。如果尚不存在,则会创建一个文件,但是会将重定向的输出附加到该文件(如果已存在)。
并且请不要使用管道|
在一行中编写多个命令,这会重定向第一个命令的输出(stdout
)到第二个命令的输入(stdin
)。
您可以使用分号(;
)告诉bash在一个命令之后执行另一个命令,就好像它是脚本文件一样。如果命令失败(返回码不为0),其余命令仍将执行。
或者,您可以选择逻辑运算符AND(&&
)或OR(||
):
如果&&
用于连接两个命令,则只有第一个成功(返回码为0)时,才会执行第二个命令。如果失败,则以下命令均不会运行。
该||
然而,仅运行第二个命令,如果第一个失败(返回代码不为0)!
因此,在您的情况下,我建议您使用分号:
md5sum firefox.tar.gz > sha.txt ; sha1sum firefox.tar.gz >> sha.txt ; sha512sum firefox.tar.gz >> sha.txt
{}
或()
?谢谢。