2

我遇到一个问题,当我运行 clearcase 命令时:

ct find . -branch 'brtype(my_branch)' -exec "echo %CLEARCASE_XPN%"`

%CLEARCASE_XPN%未解析为变量,输出为:

%CLEARCASE_XPN%
%CLEARCASE_XPN%
%CLEARCASE_XPN%
...

但我确定CLEARCASE_XPN变量表示找到的文件的整个路径。
有人可以帮忙吗?操作系统是linux,shell是tcsh,谢谢!

4

1 回答 1

1

采用:

ct find . -branch 'brtype(my_branch)' -exec 'echo $CLEARCASE_XPN'

%CLEARCASE_XPN%是一种windows语法。

$CLEARCASE_XPN是 unix 语法,您可以在 Linux tcsh 会话中使用它。

有关使用 unix 语法的许多示例 ,请参阅“ cleartool find”和“ cleartool find 命令的其他示例”。


还要注意在 exec 指令周围使用简单的引号:-exec 'echo $CLEARCASE_XPN'.
这将阻止 shell 本身立即$CLEARCASE_XPN解释变量(这对于 tcsh 会话是未知的),并将允许 cleartool find 将正确的值传递给 exec 指令,替换$CLEARCASE_XPN为扩展路径名。

请参阅“字符串引用(单引号)与弱引用(双引号) ”:

  • 强引号可防止字符具有特殊含义,因此如果将字符放在单引号内,所见即所得。
    因此,如果您不确定某个字符是否为特殊字符,请使用强引号。

  • 弱引号将大多数字符视为普通字符,但允许某些字符(或更确切地说是元字符)具有特殊含义。如前面的示例所示,双引号内的反斜杠是一个特殊的元字符。
    表示下一个字符不是,所以可以用在反斜杠前和双引号前,转义特殊含义。
    双引号中允许使用另外两个元字符:美元符号和反引号。

于 2012-07-11T09:22:10.903 回答