Bash:在另一个命令中使用一个命令的输出

时间:2014-04-10 13:00:17

标签: bash svn jira

我在这里有以下要求:从过去两年中获取SVN中的所有提交,并列出已提交代码的所有JIRA问题的标题。我们的提交规则非常严格,因此提交必须以JIRA代码开头,例如:COR-3123 Fixed the bug, introduced a new one

所以,我编写了以下shell脚本来实现这个目的:

svn log -r{2012-04-01}:{2014-04-01} | grep "COR-" | cut -f1 -d" " | sort -u

这让我得到了所有的JIRA代码。

但现在我想在以下命令中使用它们:

wget --quiet --load-cookies cookies.txt -O - http://jira.example.com/browse/{HERE} | sed -n -e 's!.*<title>\(.*\)</title>.*!\1!p'

即:通过wget获取JIRA页面并解析标题...(我已经缓存了我的登录凭据,以便与cookies.txt中的wget一起使用)

并且明显到位置{HERE}我想插入从第一个列表中获取的代码。通过两步(第1步:获取列表,第2步迭代列表)脚本(python,perl,...)执行此操作不是问题,但我想知道是否可以一步完成,使用bash :) (是的,我知道有JIRA rest API)

1 个答案:

答案 0 :(得分:3)

您可以使用xargs将参数传递给wget

xargs -I {} wget http://jira.example.com/browse/{}