ssh &2>1 和重定向顺序问题

1. 在bash中执行:

ssh host1 "sleep 10 &"
发现不能立即返回。

2. 执行:

ssh host1 "sleep 10 &>/dev/null &"
发现能立即返回。
原因参照pssh nohup 出现的问题

3. 然而,执行

ssh host1 "sleep 10 2>&1 >/dev/null &"
发现又不能立即返回了。

4. 改为,执行

ssh host1 "sleep 10 >/dev/null 2>&1 &"
发现又能立即返回了。

5. 原因:2>&1 放在重定向前面执行和放在后面执行是不同的

2>&1 放在重定向前面执行和放在后面执行是不同的
所以放在前面会阻塞,放在后面就不会。
参考:linux redirection: difference between using “2>&1” before and after “> somfilename”

6. 进一步探究

发现&>/dev/null>/dev/null 2>&1是一样的。
参考Redirecting Standard Output and Standard Error

最后:附上画图链接mermaid-live-editor.

posted @ 2021-04-16 19:18  成民  阅读(179)  评论(0编辑  收藏  举报