This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Can I use a variable in sed?
- From: Brian Dessent <brian at dessent dot net>
- To: cygwin at cygwin dot com
- Date: Thu, 24 May 2007 02:11:01 -0700
- Subject: Re: Can I use a variable in sed?
- References: <f33jbo$cnq$1@sea.gmane.org>
- Reply-to: cygwin at cygwin dot com
Jerome Fong wrote:
> I'm trying to write a script that allows me to change the port number
> depending on when environment I'm in. I can pass in the port number to
> my script, but I stuck trying to get sed modify my file with my port
> number variable. Here is the line I'm executing
>
> sed '1,$ s^8080^$Shutdown_Port^' <./temp.xml >./server.xml
>
> Since my line started out to be
> <Server port="8005" shutdown="SHUTDOWN">
>
> Since Shutdown_Port was 9300, I thought the resulting line would be
>
> <Server port="9300" shutdown="SHUTDOWN">
>
> Instead, I got:
>
> <Server port="$Shutdown_Port" shutdown="SHUTDOWN">
>
> What am I doing wrong here? Can sed be passed a variable?
This isn't Cygwin-specific at all.
You've used $Shutdown_Port inside a single-quoted string. Shell
variable expansion does not occur there; that's the whole point of
single quotes.
$ var=value; echo '$var is $var'; echo "$var is $var"; \
echo '$var is '$var' is $var'
$var is $var
value is value
$var is value is $var
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/