delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/06/27/07:49:09

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <4864D40F.E6FCF336@dessent.net>
Date: Fri, 27 Jun 2008 04:50:39 -0700
From: Brian Dessent <brian AT dessent DOT net>
X-Mailer: Mozilla 4.79 [en] (Windows NT 5.0; U)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: sourcing a perl script on cygwin
References: <435f371f0806270051g7734f46ai9be6649011a05cbe AT mail DOT gmail DOT com> <435f371f0806270055p7555331dt18cd8c868c7e208 AT mail DOT gmail DOT com> <435f371f0806270057j2800bea2xbc430867110f62a8 AT mail DOT gmail DOT com>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Florin Barbalau wrote:

> then If i run:
> $ /cygdrive/d/cdb_10_2/content/bin/system/ifssetenv.pl
> it works ok.
> 
> but if I try to source as in the calling script (install_cdaa.sh) I
> get error messages. :
> $ . /cygdrive/d/cdb_10_2/content/bin/system/ifssetenv.pl
>  bash: use: command not found
> bash: use: command not found
> bash: /cygdrive/d/cdb_10_2/content/bin/system/ifssetenv.pl: line 31:
> syntax erro
> r near unexpected token `$^O'
> bash: /cygdrive/d/cdb_10_2/content/bin/system/ifssetenv.pl: line 31:
>  `if (lc($^O
> ) eq "mswin32")'
> 
> do you have any ideea why?

You have a misunderstanding of what sourcing means.  When you tell the
shell to source a file it expects to read shell commands from that
file.  It doesn't expect to find foreign commands in another language
like perl, and it doesn't honor the shebang since that is just a comment
in shell syntax.  When you run a script, as opposed to sourcing it, the
OS (in this case Cygwin) reads the shebang line (#!/bin/perl) to know
what program to use to interpret the script, which is why that works.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019