我正在创建一个Perl脚本,除其他外,它设置为ClearCase视图,提供环境,运行综合工具,最后处理输出报告.它通过管道连接到使用IPC :: open2打开的shell进程来实现.
如果我在运行Perl脚本之前手动设置到视图中,它似乎正常工作(cleartool子命令,如pwv工作).但是,当我在脚本中运行$ct setview anassar_ $proj时,它会显示以下错误消息:
stty: standard input: Invalid argument
我不知道有什么限制禁止运行ct setview通过管道它到shell进程.有帮助吗?
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; } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。