0
我试图运行RTC 4.x命令将组件添加到工作区。组件列表在名称中有空格,因此它们需要用引号括起来。我存储这个列表中一个简单的字符串变量:使用双引号的Shell字符串 - RTC命令
COMPONENTS="\"TestComp\" \"Common Component\""
当我刚刚回声出正确显示的组件,但是当我在SCM命令用很奇怪的事情发生在了引号。我在詹金斯运行这个,所以我可以得到一些额外的输出,但同样的事情发生时,我在命令行上运行它,所以这不是詹金斯问题。
从控制台日志:
+ COMPONENTS='"TestComp" "Common Component"'
+ echo '"TestComp"' '"Common' 'Component"'
"TestComp" "Common Component"
该命令试图运行以下命令:
+ scm workspace add-components TEST_Workspace -s Test_Stream '"TestComp"' '"Common' 'Component"'
主要生产:
Problem running 'workspace add-components':
Unmatched component ""Common".
好想,但我也尝试过数组路线。这取决于我如何玩报价产生类似的结果。例如:'components =(“TestComp”“Common Component”)'产生'com.ibm.team.scm.common.ComponentNotInWorkspaceException:组件'TestComp'不在工作区错误中。这个'components =('TestComp'''Common Component'')'产生'不匹配的组件''Common Component''。' – JamesE
如果你手动指定组件而不尝试存储它们,你将如何调用'scm'一个变量?你显示的第一个错误(对于我声称应该工作的代码)看起来更像是一个设置问题,而不是'bash'命令。 – chepner
@JimG你是否在数组引用周围使用了双引号(如''{components [@]}“')? –