Linux 如何将git命令的输出存储在变量中?
我想要的是将git命令的输出(例如git status)存储在shell脚本中的变量中。当我说输出时,我指的是终端在执行命令时返回的文本,例如: 在我的回购协议之外执行git状态时:Linux 如何将git命令的输出存储在变量中?,linux,bash,shell,Linux,Bash,Shell,我想要的是将git命令的输出(例如git status)存储在shell脚本中的变量中。当我说输出时,我指的是终端在执行命令时返回的文本,例如: 在我的回购协议之外执行git状态时: fatal: Not a git repository (or any of the parent directories): .git 我试过这个: var=$(git status) 但是“var”没有存储任何内容。您可以使用: var=$(git status 2>&1) i、 e.将st
fatal: Not a git repository (or any of the parent directories): .git
我试过这个:
var=$(git status)
但是“var”没有存储任何内容。您可以使用:
var=$(git status 2>&1)
i、 e.将stderr重定向到stdout,然后捕获输出
否则,当在
stderr
上写入for错误消息时,您的命令:var=$(git status)
仅捕获stdout
该消息在标准错误时显示,默认情况下,$(cmd)仅捕获标准输出。您可以通过将标准错误重定向到标准输出来修复-请参阅其他答案之一。但是,您可以使用退出代码
- 这个案子有128人
- 如果没有错误,则返回0李>
如果您使用的是Linux/OS X等,则完整的详细信息在中,示例输出可能会转到STDERR,而
var
将包含发送到STDOUT的内容。您可以使用2>&1
将前者重定向到后者。谢谢,事实上输出到了STDERR。非常感谢!你能提供我可以研究的任何文档链接吗。(我会给你投票,但我的低回购不允许。)谢谢,这种使用退出代码的方法正是我所需要的。
foo=$(git status)
fatal: Not a git repository (or any of the parent directories): .git
echo $?
128