Background
在 clearcase 中,命令setcs
用于以下示例:
将当前视图的配置规范更改为文件cspec_REL3的内容。
cmd-context setcs cspec_REL3
更改其视图标记jackson_vu默认配置规范的视图的配置规范。
cmd-context setcs –tag jackson_vu –default
让当前视图的view_server重新读取其配置规范。
cmd-context setcs –current
问题
我有一个脚本,我正在尝试执行以下操作:
- 获取我之前在脚本中生成的某个视图的 configSpec(编辑掉第一行)。
- 删除配置规范中显示"元素 * CHECKEDOUT"的行(我使用了此方法)
- 将该视图的 configSpec 设置为我所做的新编辑。
下面是我为尝试此操作而编写的代码:
configSpec=`cleartool catcs -tag $VIEW_NAME | tail -n +2`
noCheckout=`printf '%sn' "{$configSpec//element * CHECKEDOUT/}"`
cleartool setcs -tag $VIEW_NAME $noCheckout
它返回给定的错误:
cleartool: Error: Extra arguments: "SET:"
这恰好是noCheckout
变量中的第一个单词。
问题
如何使用字符串变量作为中介来编辑和更新配置规范?
我建议不要使用字符串变量作为中介,而是使用文件,因为cleartool setcs pname
是:
pname
指定一个文本文件,其内容将成为视图的新配置规范。
因此,如果可以的话,将变量的内容重定向到文件 (fprintf
),并使用该确定的文件名作为setcs
命令的参数。