2015-08-26 2 views
1

Я использую clearfsimport, чтобы рекурсивно проверить дерево файлов в clearcase. Из всего, что читается ive, кажется, что это лучший способ, однако, когда я запускаю команду exec clearfsimport -rec -nset create_clearcase_tempfile/* . внутри скрипта tcl, я получаю следующую ошибку;Использовать Clearfsimport в команде tcl exec

Validating directory ".". 
Closing directories. 
No change in version "/main/91" of directory "." 
clearfsimport: Error: Could not access "create_clearcase_tempfile/*". 

Мое подозрение, что /* путает команду, но когда я пытаюсь его вне Tcl непосредственно в Баш команд работает точно так же, как и ожидалось. Может кто-нибудь, пожалуйста, скажите мне, что им не хватает?

+0

Exec на Tcl не ссылается на оболочку, так что '*' не интерпретируется. – schlenk

+0

есть эквивалент '*' wildcare, но для tcl 'exec' commant? или мой единственный вариант сделать цикл, который обрабатывает каждый файл в каждом случае? –

ответ

2

Проблема в том, что (в отличие от bash) Tcl не расширяет файловые глобы по умолчанию; он просто передает * поверх, и ClearCase удивляется этому. Вы, вероятно, хотите изменить:

exec clearfsimport -rec -nset create_clearcase_tempfile/* . 

к этому:

exec clearfsimport -rec -nset {*}[glob create_clearcase_tempfile/*] . 
+0

Когда я пытаюсь, я получаю сообщение 'invalid command name" create_clearcase_tempfile/* "' Я использую tcl версию 8.6 –

+0

@LiamP Вы не забыли использовать 'glob' там? Это важно. –

+0

Wow теперь кажется таким простым ... Спасибо, что я относительно новичок в tcl и все еще учась правильно рекурсивно работать. –

Смежные вопросы