可以重定向bas​​h -v输出吗?

Tim*_*Tim 7 bash

使用-v选项启动bash会向控制台生成一个长输出

$ bash -v

source ~/Dropbox/bin/tim_functions.sh

\#!/bin/bash
...several hundred more lines
Run Code Online (Sandbox Code Playgroud)

我想将输出捕获到一个文件,以便更容易浏览,但我已经尝试过bash -v 2>&1 > out_bash.txt,bash -v | tee out_bash.txt并且无法捕获文件中终端屏幕上的信息.好像详细输出既不是stderr也不是stdout.怎么会这样?

任何人都可以建议一种方法来捕获bash -v的输出?

piz*_*zza 7

 bash -v 2>&1 > out_bash.txt
Run Code Online (Sandbox Code Playgroud)

不是你想要的,它应该是

 bash -v  >out_bash.txt 2>&1
Run Code Online (Sandbox Code Playgroud)


Tim*_*Tim 1

在阅读其他有用的答案后,我相信这个问题与 bash 如何将详细信息发送到 tty 有关 - 这与 stderr 或 stdout 有所不同。可以通过以下解决方法捕获它:

$ screen -L 
$ bash -v 
$ exit #from the bash session
$ exit #from the screen session
Run Code Online (Sandbox Code Playgroud)

这会生成包含输出的 screenlog.0 文件。

感兴趣的 bash -v 输出是在运行 10.7.3 (Lion) 的 Mac 上

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.)
Run Code Online (Sandbox Code Playgroud)

我尝试的另一个 10.6.8 mac 的输出较少(有趣/详细),尽管有类似的 .bashrc 文件。