Rajesh Dorairajan wrote:
> 
> Hello All,

Hello,

> I am using Perl to launch installer written in Shell script on Solaris. I am
> supplying the arguments for all the prompts made by the installer from Perl,
> such as path, port number etc., The installer displays a copyright page that
> has multiple pages when it is launched and then prompts the user to accept
> or decline the license agreement. I am trying to modify the script such that
> all the pages are displayed at once instead of displaying one page at a
> time. The shell command in the script is:
> 
> "cat copyright | more"
> 
> I am trying to edit the script and modify it as:
> 
> "cat copyright"
> 
> I am trying the following command from perl:
> 
> system("perl -p -i.bak -e \"s/cat copyright | more/cat copyright/\" install.sh");

The vertical bar character (|) is special in a regular expression.  Your
regex is searching for the string 'cat copyright ' OR the string '
more'.  You have to escape \| if you want to match a literal |
character.  There is no reason to run system() to do something you can
do directly in perl.

{   local ( $^I, @ARGV ) = ( '.bak', 'install.sh' );
    while ( <> ) {
        s/cat copyright \| more/cat copyright/;
        print;
        }
    }


> However, when I run this command from Perl, It reports that I am not owner
> of the file (install.sh) and when I do a "ls" from the shell, the install.sh
> file has disappeared!!!!

Is the 'install.sh.bak' file there?



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to