我想将进程的stdout和stderr重定向到单个文件.我怎么用Bash做到这一点?
我正在运行一个bash脚本,它创建一个日志文件来执行命令
我使用以下内容
Command1 >> log_file
Command2 >> log_file
Run Code Online (Sandbox Code Playgroud)
这仅发送标准输出,而不是终端上显示的标准错误.
我可以记录记录到文件的stderr和stdout吗?
众所周知如何将流程的标准输出管道传输到另一个流程标准输入:
proc1 | proc2
Run Code Online (Sandbox Code Playgroud)
但是如果我想将proc1的标准错误发送到proc2并将标准输出保留到当前位置呢?你会认为bash会有一个命令:
proc1 2| proc2
Run Code Online (Sandbox Code Playgroud)
但是,唉,没有.有没有办法做到这一点?
当我们合并时,我们保留 Maven pom.xml 文件的本地版本:
git merge origin/remote_branch
git checkout --ours **/pom.xml pom.xml
git add **/pom.xml pom.xml
git commit -m "Merge"
Run Code Online (Sandbox Code Playgroud)
除非本地分支中的 pom.xml 文件已被删除,否则这非常有效。运行上面的命令 #2 后,我们得到一个错误:
d:\code>git checkout --ours **/pom.xml pom.xml
error: path 'blah/pom.xml' does not have our version
Run Code Online (Sandbox Code Playgroud)
...并且在此错误之后,下一个命令 #3git add **/pom.xml pom.xml有效地添加了远程 pom.xml 文件 - 这正是我们不想要的。
我们如何更新脚本来处理这个问题?