1

ksh スクリプトを使用して ClearCase チェックインを自動化しようとしています。次のコマンドが自動化スクリプトの一部である間は実行されませんが、コマンド ラインに貼り付けると正常に実行されるという奇妙な問題があります。

スクリプトのスニペット:

for dir in `cat $DIRS`
do
    RUNCMD="cleartool find <<vob_directory>>/$dir -type f -exec 'cleartool co -nc \$CLEARCASE_PN'"
    print $RUNCMD
    $RUNCMD
done
exit 1

次のコマンドを生成します

cleartool find <<vob_directory>> -type f -exec 'cleartool co -nc $CLEARCASE_PN'

ここにエラーがあります

cleartool: Error: Extra arguments: "co"
Usage: find { pname ... [-depth | -nrecurse | -directory]
        | [pname ...] -all [-visible | -nvisible]
        | -avobs [-visible | -nvisible]
        }
        [-name 'pattern']
        [-cview]
        [-user login-name]
        [-group group-name]
        [-type {f|d|l}...]
        [-follow]
        [-kind object-kind]
        [-nxname]
        [-element query]
        [-branch query]
        [-version query]
        {-print | -exec command-invocation | -ok command-invocation} ...

ここで何が間違っていますか?

4

2 に答える 2

1

なぜこれが機能するのかはわかりませんが、同僚からeval. これが機能することがわかりました。

for dir in `cat $DIRS`
do
    RUNCMD="cleartool find <<vob_directory>>/$dir -type f -exec 'cleartool co -nc \$CLEARCASE_PN'"
    print $RUNCMD
    eval $RUNCMD
done
exit 1
于 2013-04-17T21:55:56.913 に答える