我遇到一个问题,当我运行clearcase命令时:
ct find . -branch 'brtype(my_branch)' -exec "echo %CLEARCASE_XPN%"`
%CLEARCASE_XPN%
未解析为变量,输出为:
%CLEARCASE_XPN%
%CLEARCASE_XPN%
%CLEARCASE_XPN%
...
但我确信CLEARCASE_XPN
变量表示找到的文件的整个路径
有人可以帮忙吗?操作系统是linux,shell是tcsh,谢谢!
答案 0 :(得分:1)
使用:
ct find . -branch 'brtype(my_branch)' -exec 'echo $CLEARCASE_XPN'
%CLEARCASE_XPN%
是一种Windows语法。
$CLEARCASE_XPN
是unix语法,可以在Linux tcsh会话中使用。
有关使用unix语法的许多示例,请参阅“cleartool find
”和“Additional examples of the cleartool find command”。
还要注意在exec指令周围使用简单的引号:-exec 'echo $CLEARCASE_XPN'
这将阻止shell本身立即解释 {/ 1}} $CLEARCASE_XPN
变量(对于tcsh会话是未知的)并且将允许cleartool find传递正确的值到exec指令,用扩展路径名替换$CLEARCASE_XPN
。
请参阅“String quoting (single quote) vs. Weak Quoting (double quote)”:
强引号可防止字符具有特殊含义,因此如果您将字符放在单引号内,您所看到的就是您得到的内容。
因此,如果您不确定某个字符是否是特殊字符,请使用强引号。弱引号标记将大多数字符视为普通字符,但允许某些字符(或更确切地说是元字符)具有特殊含义。如前面的示例所示,双引号内的反斜杠是一个特殊的元字符 它表示下一个字符不是,因此可以在反斜杠之前和双引号之前使用,从而逃避特殊含义。
双引号内还有两个允许的元字符:美元符号和后引号。