csh and echo

Polytropon freebsd at edvax.de
Thu May 29 16:39:51 UTC 2014


On Thu, 29 May 2014 12:02:35 -0400, Andre Goree wrote:
> I'm writing a script within which I need to have encrypted passwords 
> passed to 'pw mod user'.  My issue is that csh does not seem to escape 
> the the "$" correctly and thus I receive an "Undefined variable" error 
> message.

The csh does exactly what it should to. Use '...' instead of "..."
to avoid evaluations within a string, for example:

	% echo '$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0'
	$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0



> Bash does not seem to have this same issue:
> 
> root at fbsdtest13:~ # echo "$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0"
> rVxldcGZ: Undefined variable.
> root at fbsdtest13:~ # bash
> [root at fbsdtest13 ~]# echo "$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0"

It's not an issue, it's intended. Strings enclosed in "..." are
allowed to contain variables, whereas strings enclosed in '...'
are being processed without expansion.

	$ echo '$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0'
	$1$rVxldcGZ$CisrIAX4SBYUkMJt9KjXl0

I'm sure this is mentioned somewhere in "man bash", as well as
in "man csh" regarding the C Shell. :-)




-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list