Невозможно 'settool setview' в процессе оболочки, открытом с помощью Perl IPC :: open2

Я создаю сценарий Perl, который, помимо прочего, устанавливает в представление ClearCase, создает среду, запускает инструменты синтеза и, наконец, обрабатывает выходные отчеты. Это делается путем передачи в процесс оболочки, открытый с помощьюIPC::open2.

Если я установил представление вручную перед запуском сценария Perl, похоже, он работает правильно (подкоманды cleartool, такие какpwv работай). Тем не менее, когда я запускаю$ct setview anassar_$proj в скрипте выдает следующее сообщение об ошибке:

stty: standard input: Invalid argument

Я не знаю каких-либо ограничений, которые запрещают запускct setview путем передачи его в процесс оболочки. Любая помощь?

my ( $readme, $writeme );
# Open the default shell and hook to its stdin and stdout.
my $pid = open2( $readme, $writeme, "$ENV{SHELL}" ) or
   croak "Cannot open IPC handles to $ENV{SHELL}\n";


runCmd("$ct pwv");
runCmd("$ct setview anassar_$proj");
runCmd("$ct pwv");
runCmd('source  /vobs/blah/blah/blah/env.csh');
runCmd('echo env_var1 = $env_var1');
runCmd('echo env_var2 = $env_var2');
runCmd('echo env_var3 = $env_var3');
runCmd('exit'); # Exit from ClearCase View
runCmd('exit'); # Exit from shell.


sub runCmd {
    my ( $cmd ) = @_;
    my $sentinel = '___SOME_STRING_THAT_CANNOT_OCCUR_IN_OUTPUT___';

    print $writeme "$cmd && echo $sentinel\n";

    while ( my $output = <$readme> ) {
        last if ( $output =~ /$sentinel/ );
        print $output;
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос