作为我脚本的一部分,我想将包发布到 nuget 提要:
dotnet nuget push package.1.2.3.nupkg --source "mysource" --api-key "mykey"
该命令可能会打印error: 409 already contains version 1.2.3
并退出代码 1。这在我的上下文中非常好,但它会使整个脚本失败。我想用一些东西包装这个命令,如果特定错误出现在标准输出中,它将吞下非零退出代码,但如果它没有出现,则冒泡非零退出代码。我可以用什么来完成我的任务?
如果退出代码为 0,此脚本将捕获 stdout 和 stderr 并再次将其打印到 stdout,否则打印到 stderr。
如果字符串包含“错误:409 已包含版本”,则函数返回 0,否则返回原始退出代码。
你在追求比这更复杂的事情吗?
作为一个函数:
error: 409 ..
如果您的程序将其消息写入stdout而不是 stderr,您将不得不摆脱额外的 fd 杂耍。您可以添加
|| true
到脚本中的行,即正如 Stackoverflow 上的这个答案所建议的那样