C-shell variables

Brad Appleton brad at SSD.CSD.HARRIS.COM
Sat Aug 18 08:16:14 AEST 1990


I need to have a C shell variable contain a new-line. Apparently
I can do this at the shell-prompt using:

	% set foo=a"\
	"b
	% echo $foo:q
	a
	b

but the following does not work:

	% set foo=a\
	b
	% echo $foo:q
	a

Regardless, I am required to put my variable setting in a file named "tmp"
and set the variable using:

	% eval `cat tmp`

where "tmp" contains the command to set the variable foo! Unfortunately,
what worked at the shell prompt does not seem to work when I put it in
a file and use eval (regardless of whether or not I use backslashes).

??? SO what must I put into "tmp" to get a newline into $foo:q ???

Please dont post solutions that dont use "eval `cat file`"; such 
solutions will be of no use to me. 

Please dont tell me not to use csh either; I dont usually but in this
particular case it is part of my requirements-spec.

To make matters worse, I cant go translating all newlines in "tmp"
to something else (and then back again) because there may be other
variable settings in "tmp" which may be terminated by a newline (and/or
a semicolon).

This one is giving me a lot of grief because I was hoping that what works
on the command-line would work in "tmp" (which doesnt seem to be the case
for my csh anyway).

PS - If youre curious, the reason I have to deal with all the above is that
     I have a program that will be taking input and spitting out C-shell
     variable settings. The only character I cant seem to preserve from the
     input is the newline character.

advTHANXance
______________________ "And miles to go before I sleep." ______________________
 Brad Appleton        brad at travis.ssd.csd.harris.com   Harris Computer Systems
                          ...!uunet!hcx1!brad          Fort Lauderdale, FL USA
~~~~~~~~~~~~~~~~~~~~ Disclaimer: I said it, not my company! ~~~~~~~~~~~~~~~~~~~



More information about the Comp.unix.questions mailing list