如何处理ClearCase-exec命令字符串中的shell元字符? 背景
我正在尝试用label_A更新所有文件以获得label_B。现在,我正在尝试使用find命令,如下所示:如何处理ClearCase-exec命令字符串中的shell元字符? 背景,clearcase,quotes,Clearcase,Quotes,我正在尝试用label_A更新所有文件以获得label_B。现在,我正在尝试使用find命令,如下所示: ct find . -version 'lbtype (LABEL_A)' -exec 'cleartool mklabel (LABEL_B) $CLEARCASE_XPN' 当我输入上述命令时,返回以下错误: /bin/sh: -c: line 0: syntax error near unexpected token `(' /bin/sh: -c: line 0: `clearto
ct find . -version 'lbtype (LABEL_A)' -exec 'cleartool mklabel (LABEL_B) $CLEARCASE_XPN'
当我输入上述命令时,返回以下错误:
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cleartool mklabel (LABEL_B) $CLEARCASE_XPN'
文件上说了什么
当我输入ct man query\u language
时,有关mklabel的说明如下:
将标签EYY6附加到已发布的test.c版本
标记为EYY5
UNIX和Linux:
cleartool mklabel-ver'{lbtype(EYY5)}'EYY6 test.c
在“test.c”版本/main/4上创建了标签“EYY6” 但是,上面的文档仅适用于一个特定的文件。我的案例正在查看带有旧标签的所有文件。这引发了我的问题 问题: 当试图更新特定标签的所有文件时,
mklabel
参数的正确引用是什么?我认为您的问题实际上是:
问:如何处理ClearCase-exec
命令字符串中的shell元字符
A:试试这个:
ct find . -version 'lbtype (LABEL_A)' -exec 'cleartool mklabel \(LABEL_B\) $CLEARCASE_XPN'
注:
您可能还需要在“$CLEARCASE\u XPN”中转义“$”。这取决于Clearcase是否需要文本“$Clearcase\u XPN”或扩展的shell值。您可以在“”(2012)中找到引用策略的示例 但您也需要考虑语法本身:不需要
(xxx)
括号:
ct find . -version 'lbtype(LABEL_A)' -exec 'cleartool mklabel LABEL_B "$CLEARCASE_XPN"'
在lbtype
及其开头(
请参见中的示例
- “(2014年)
- “”(也是2012年)
- “”(示例部分)
()
。
这意味着您需要首先在该vob中创建标签类型:(见“”)
然后再次尝试原始的
find-exec mklabel
命令。如果我尝试了您答案中的方法,我会得到cleartool:error:Pathname not found“$CLEARCASE\u XPN”。
如果我尝试了您建议的方法(在“S”之前加上“\”),我会得到cleartool:error:label type”(label\u B)“在VOB”/VOB/vobs/le\u VOB中找不到”而且找不到全局类型定义。
和cleartool:Error:无法在“/common/cord\u sup/src/header.h”version”/main/dev/super\u dev/3”上创建label“(label_B)”
这导致了我在@paulsm4的回答中遇到的相同错误:cleartool:错误:在VOB”/VOB/le\VOB中找不到label_B”并且找不到全局类型定义。
和cleartool:错误:无法在“/common/cord\u sup/src/header.h”version”/main/dev/super\u dev/3”上创建标签“(label_B)”
@isakob我已经编辑了我的答案。为什么在标签名称周围使用()呢?使用“()”是否违反惯例关于标签名称?@isakob在mklabel的上下文中,这将无法正确解释。在类似lbtype
的搜索参数上下文中,它非常有用。
label type "(LABEL_B)" not found in VOB "/vobs/le_vob"
cleartool mklbtype -global -nc lbtype:LABEL_B@/vobs/le_vob