[20101203]
|
Hey NetBSD, got a match?
Here's one from the "get to know your shell" department.
And of course I'm talking about the only real shell, (t)csh.
So... let's first make sure we are in (t)csh. Of course the
'%' prompt tells that, but just to be sure:
% echo $SHELL
/bin/csh
Now...
% hey netbsd, got a match?
hey: No match.
Funny? Well. We all know that joke - it originates
in the One True Shell trying to expand the '?' wildcard,
and fails to find any files in the current directory that match any file that
starts with the string "match", followed by a single
random character. As a result: "No match".
This joke doesn't work in (ba)sh as those do return the
unexpanded pattern by default (try it: echo foo?bar*baz).
To get the same behaviour in interactive (t)csh,
Christos
gave this hint on one of the mailing lists:
"set nonomatch" will stop complaints if there's no wildcard
match, and the shell will then just return the input string
as expanded result:
% set nonomatch
% hey netbsd, got a match?
hey: Command not found.
%
% echo foo?bar*baz
foo?bar*baz
Neat, hu?
[Tags: csh, tcsh]
|