Newsgroups: comp.unix.wizards Path: utzoo!utgpu!watserv1!watcgl!idallen From: idallen@watcgl.waterloo.edu (Ian! D. Allen [CGL]) Subject: Re: csh weirdness (HELP!) Message-ID: <1990Aug19.011139.13718@watcgl.waterloo.edu> Organization: University of Waterloo References: <1990Aug13.151415.14575@elroy.jpl.nasa.gov> <8000007@hpopd.HP.COM> <1990Aug16.090417.7187@warwick.ac.uk> Date: Sun, 19 Aug 90 01:11:39 GMT Lines: 91 I'm concerned about the number of people posting to the Wizards list who should be posting to comp.unix.questions. This is a Wizards list; wading through rampant lack of Unix experience is tedious. Someone is claming that CSH's "Ambiguous" error is due to different handling of the built-in kill vs. /bin/kill. I think not: % `echo date` Sat Aug 18 20:10:09 EDT 1990 % `echo date foo` `echo date foo`: Ambiguous. CSH is just stupid about the number of words that are allowed to expand in a command name generated by back-quotes. It only allows one word, because it won't re-parse the line for arguments. You get the same error here: % date >`echo hi hi` `echo hi hi`: Ambiguous. CSH expects single words in funny places, and that's the error you get if you don't comply. For more entertainment, a huge list of CSH bugs (4.2BSD, but most still apply) is available via anonymous ftp from watcgl.waterloo.edu as CSHbugs.Z (compressed). A sample: Subject: EVAL built-in mishandles and ignores pipes and redirection eval "who|sort" # the |sort is ignored eval "who >x" # the >x is ignored eval "who|date >x" # the pipe is ignored; date goes in x eval "who|date >x;echo hi" >y # WHO goes to Y, DATE to X, and HI to tty (!) Subject: CSH bug with TOSTOP set, using EVAL If you have STTY TOSTOP set, then % time eval date hangs forever, or until you kill it with SIGQUIT. Subject: CSH loses memory when GLOB applied to external commands. Either of the following loops will use up all the memory on your computer. A: % while ( 1 ) ? /bin/echo `date` ? end B: % while ( 1 ) ? /bin/echo * ? end CSH does not free the GLOBbed list of words attached to an external command name; if one command is followed immediately by another GLOBbed command, the first GLOB list is not freed. Subject: Expanding variable with newline generates syntax error % set x="abc\ def" % echo "$x" Unmatched ". Subject: Expanding quoted variable loses character before newline % set x="abc\ def" % echo "$x:q" ab def Subject: Quoting slash in a pathname fouls up GLOB % echo ."/"* echo: No match. % echo "$cwd/"* echo: No match. % set x=/ % echo "$x"v* echo: No match. % echo "$x"/v* //vmunix Subject: Quoting lost in repeated ECHO % repeat 3 echo "/genvmu*" /genvmu* /genvmunix /genvmunix Subject: Can't redirect output of "source" % echo "date" >file % source file >output Thu Sep 3 17:47:19 EDT 1987 Etc, etc, etc... I kludged away at all these bugs and managed to fix them in a local version of 4.2BSD CSH, but the result was not pretty and I still don't know why many of my fixes work. If the FSF version of bash only supported transitivity in aliases, I'd move to it in a flash. -- -IAN! (Ian! D. Allen) idallen@watcgl.uwaterloo.ca idallen@watcgl.waterloo.edu [129.97.128.64] Computer Graphics Lab/University of Waterloo/Ontario/Canada