2

clearcase コマンドを実行すると、次の問題が発生します。

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

%CLEARCASE_XPN%変数として解析されず、出力は次のとおりです。

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

But I'm sure CLEARCASE_XPN is the variable denotes the whole path of the found file.
Can anybody help? OS is linux, shell is tcsh, thanks!

4

1 に答える 1

1

使用する:

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

%CLEARCASE_XPN%Windows 構文です。

$CLEARCASE_XPNLinux tcsh セッションで使用できる UNIX 構文です。

unix 構文を使用した多くの例について は、「 cleartool find」および「cleartool find コマンドのその他の例」を参照してください。


exec ディレクティブを囲む単純な引用符の使用にも注意してください: -exec 'echo $CLEARCASE_XPN'.
これにより、シェル自体が変数 (tcsh セッションでは不明) をすぐに解釈できなくなり、cleartool find が正しいを exec ディレクティブに渡して、拡張パス名に置き換えることができるようになります。 $CLEARCASE_XPN$CLEARCASE_XPN

文字列の引用 (一重引用符) と弱い引用 (二重引用符)」を参照してください。

  • 強い引用符は、文字が特別な意味を持つことを防ぎます。そのため、文字を単一引用符で囲むと、表示される内容が得られます。
    したがって、文字が特殊文字かどうかわからない場合は、強力な引用符を使用してください。

  • 弱い引用符は、ほとんどの文字をプレーンな文字として扱いますが、特定の文字 (またはむしろメタ文字) に特別な意味を持たせることができます。前の例が示すように、二重引用符内のバックスラッシュは特殊なメタ文字です。
    次の文字がそうでないことを示すため、バックスラッシュの前と二重引用符の前に使用して、特別な意味をエスケープできます。
    二重引用符内で使用できるメタ文字は他に 2 つあります。ドル記号と逆引用符です。

于 2012-07-11T09:22:10.903 に答える