由于某种原因,这项任务:OUT=$(git describe HEAD)
打印到标准输出(例如):fatal: No names found, cannot describe anything.
这是正常现象吗?为什么其他命令不会发生这种情况?
答案1
那实际上是stderr
输出,而不是stdout
。从交互式终端运行命令时,stdout
和都stderr
设置为转到终端。
如果您希望将stderr
输出放在变量中(您可能不希望如此,但无论如何),请将其重定向到stdout
如下位置:
OUT=$(git describe HEAD 2>&1)
或者,如果你不想让运行脚本的人看到该stderr
输出,请像这样将其丢弃:
OUT=$(git describe HEAD 2>/dev/null)