“为什么?”;bash 2>;out.txt“;隐藏bash输出?
我目前正在使用zsh,我正在尝试从zsh启动“为什么?”;bash 2>;out.txt“;隐藏bash输出?,bash,shell,unix,Bash,Shell,Unix,我目前正在使用zsh,我正在尝试从zsh启动bash,以便在此bash中运行的所有命令都将其stderr重定向到out.txt bash2>out.txt肯定完成了任务,但是正常的bash输出(stdout?)消失了 我所期望的是: zsh> bash 2>out.txt user@pc:~$ pwd /home/user 我得到的是: pwd /home/user user@pc:~$东西不见了 为什么会这样?我想user@pc:~$本应打印到stdout,但我尝试将stdou
bash
,以便在此bash
中运行的所有命令都将其stderr重定向到out.txt
bash2>out.txt肯定完成了任务,但是正常的bash输出(stdout
?)消失了
我所期望的是:
zsh> bash 2>out.txt
user@pc:~$ pwd
/home/user
我得到的是:
pwd
/home/user
user@pc:~$
东西不见了
为什么会这样?我想user@pc:~$
本应打印到stdout
,但我尝试将stdout
重定向到/dev/null
,它仍在显示。它也没有显示在out.txt
中,这意味着它没有打印到stderr
?那么为什么2>out.txt
会让它消失呢?Bash只在交互模式下打印提示;将其stderr重定向到非终端将使其退出该模式。您可以使用-i
强制交互模式,如果这样做,您会注意到提示实际上是打印到stderr,而不是stdout
但一般来说,如果要捕获交互式会话,应使用script
程序(例如Linux上的script-c bash out.txt
,BSD/macOS上的script out.txt bash
).当您关闭会话或写入足够的内容以刷新我选中的块并将其脚本输出时,文本文件可能会被刷新。txt bash是否会启动另一个zsh?(我在ubuntu 18.04上)在任何事情上,有没有办法达到我所期望的行为?因为script
似乎捕获了所有内容,这不是我想要实现的。我认为没有办法让bash将其提示符打印到stderr之外的其他地方。如果仍希望得到提示,则必须分别重定向键入的每个命令的stderr。