我有一些 shell 进程,我需要通过特定行中的字符串捕获随之而来的错误。所以,我正在这样做:
OUTPUT="$(npm run generate_post)"
echo ${OUTPUT} | grep "_currentUrl" * > error.log
但我没有任何结果,有人可以帮忙吗?
最佳答案
首先,你的说法没有意义:
echo ${OUTPUT} | grep "_currentUrl" *
星号扩展到工作目录中的文件,并且 grep 正在那里搜索模式,忽略来自 stdin 的内容。我不知道您对 *
的意图是什么。
然后,您没有指定稍后是否需要 npm 的完整输出。假设你不这样做,你可以写
npm run generate_post | grep _currentUrl
当然,遵循 Triptych 的建议来捕获 stderr 可能是明智的,但这是一个不同的故事。
如果您确实需要 npm 的完整输出,请考虑将其放入文件而不是变量中 - 当然这取决于您稍后将如何使用它,因此这只是几个选项之一:
npm run generate_post | tee npm_output.txt | grep _currentUrl
关于javascript - 如何将shell输出按字符串写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420241/