ugh.book

(singke) #1

158 csh, pipes, and find


(BTW, your typical TeX source file gets classified as “ascii text”
rather than “English text,” but I digress...)

words.h.~1~: ascii text
words.h: English text

Perhaps I added some comments to words.h after version 1?

But I saved the best for last:

arc.h: shell commands
Makefile: [nt]roff, tbl, or eqn input text

Both wildly wrong. I wonder what would happen if I tried to use
them as if they were the kinds of program that the ‘file’ program
assigns them?

—Alan

Shell Variables Won’t
Things could be worse for Alan. He could, for instance, be trying to use
shell variables.

As we’ve mentioned before, sh and csh implement shell variables slightly
differently. This wouldn’t be so bad, except that semantics of shell vari-
ables—when they get defined, the atomicity of change operations, and
other behaviors—are largely undocumented and ill-defined. Frequently,
shell variables behave in strange, counter-intuitive ways that can only be
comprehended after extensive experimentation.
Date: Thu, 14 Nov 1991 11:46:21 PST
From: Stanley’s Tool Works <[email protected]>
Subject: You learn something new every day
To: UNIX-HATERS

Running this script:

#!/bin/csh
unset foo
if (! $?foo ) then
echo foo was unset
else if ( "$foo" = "You lose" ) then
echo $foo
Free download pdf