我可以使用`setcs`来为变量设置configspec吗?

时间:2019-06-12 19:46:37

标签: bash clearcase config-spec

背景

在明显的情况下,以下示例中使用命令setcs

  

将当前视图的配置规范更改为文件cspec_REL3的内容。

     

cmd上下文setcs cspec_REL3

     

将其视图标签为jackson_vu的视图的配置规范更改为默认配置规范。

     

cmd上下文setcs –标记jackson_vu –默认

     

让当前视图的view_server重新读取其配置规范。

     

cmd上下文setcs –当前

问题

我有一个脚本在尝试执行以下操作:

  1. 获取我之前在脚本中生成的某个视图的configSpec(使用first line edited out)。
  2. 在configspec中删除“ element * CHECKEDOUT”行(我用过this method
  3. 将该视图的configSpec设置为我所做的新编​​辑。

下面是我为尝试此操作而编写的代码:

configSpec=`cleartool catcs -tag $VIEW_NAME | tail -n +2`
noCheckout=`printf '%s\n' "{$configSpec//element * CHECKEDOUT/}"`
cleartool setcs -tag $VIEW_NAME $noCheckout

它返回给定的错误:

cleartool: Error: Extra arguments: "SET:"

恰好是noCheckout变量中的第一个单词。

问题

如何使用字符串变量作为中介来编辑和更新configspec?

1 个答案:

答案 0 :(得分:1)

我建议不要使用字符串变量作为中介,而应使用文件,因为cleartool setcs pname是:

  

pname
   指定文本文件,其内容将成为视图的新配置规范。

因此,如果可以的话,redirect the content of your variable to a file (fprintf),并将每个确定的文件名用作setcs命令的参数。