Re: Simple bash question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On 28/09/2018 15:39, Jerry Geis wrote:

> I am calling a bash script and passing in somestring that includes a "$"
> 
> myscript   "$plusmore"
> 
> I want to assign in the myscript the $1 arg to something like
> MYTEXT="$1"
> 
> when I do that I dont get what I'm expecting. if I do
> MYTEXT='$1'
> I still dont get what I'm expecting.
> 
> On the first assignment of MYTEXT I do not want the "$" to be treated as a
> shell variable. I cannot find out how to do that.
> 
> I do not have the option of escaping the call to myscipt "\$plusmore". I
> cannot do that.
> 
> What am I missing.

You MUST escape the $ in plusmore. If you don't, the calling shell will
try to expand it, and replace it with whatever is in that variable. If
it's not defined, you'll get an empty string. All this happens *before*
myscript is even called.

I'll add that escaping the $ can be done in other ways. Instead of a
backslash, you can also do:

myscript '$plusmore'

Single quotes prevent variable expansion. However, if you are simply
unable to quote $plusmore in some way, then you're stuck.

Anand
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos



[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]


  Powered by Linux