对于我来说,以下两个bash命令产生不同的结果:
# returns instantly
ssh localhost 'nohup sleep 5 >out 2>&1 &'
# returns after 5 seconds
ssh localhost 'nohup sleep 5 2>&1 >out &'这是令人惊讶的,因为以下两个bash命令产生了相同的结果:
# both return instantly
nohup sleep 5 >out 2>&1 &
nohup sleep 5 2>&1 >out &为什么?
发布于 2020-05-17 00:59:48
此表格:
command >out 2>&1
..。取出标准文件并放入文件中。然后,它获取标准错误,并将其放置到与标准输出相同的位置。两个流都被发送到一个文件中。
此表格:
command 2>&1 >out
..。获取标准错误并将其置于标准输出中。然后将发送到标准文件的内容发送到文件中。它的不发送标准错误到文件。
因此,在您的终端,您是回搁浅的任务和提示立即返回。在第一种情况下,在使用ssh时,没有显示输出,因为所有内容都已发送到文件中。在另一种情况下,标准输出仍然可以显示应用程序试图发送到标准错误的信息。
我的期望是,在第一种情况下,ssh将立即返回,因为任何输出都不会返回。在第二种情况下,有一个开放的流可以返回数据供您查看。
https://stackoverflow.com/questions/61845320
复制相似问题