home *** CD-ROM | disk | FTP | other *** search
- From: arnold@emory.arpa (Arnold D. Robbins)
- Date: Mon, 3 Nov 86 13:20:48 EST
- Organization: Math & Computer Science, Emory University, Atlanta
-
- In article <6177@ut-sally.UUCP>:
- >From: mayer@rochester.arpa (Jim Mayer)
- >Date: Wed, 29 Oct 86 22:15:54 est
- >
- >[....]
- >
- >There doesn't appear to be any decent way to compare the last modified
- >times of files from the shell. I have written programs to do this,
- >but that makes any scripts I write using the programs essentially
- >unexportable.
- >
- >There are several approaches to fixing the problem:
- >
- >1. Extend the "test" command, perhaps by borrowing the "-newer" syntax
- > of "find".
- >[....]
-
- The Korn shell did just this. In addition to the standard options listed
- in the (System V) test(1) man page, there are four more options:
-
- -L [ -L file ]; true if file is a symbolic link
- -nt [ file1 -nt file2 ]; true if file1 is newer than file 2
- -ot [ file1 -ot file2 ]; true if file1 is older than file 2
- -ef [ file1 -ef file2 ]; true if file1 and file 2 same device/inode
-
- The -L option will always be false on System V. The -ef goes through symbolic
- links; you have to use [ f1 -ef f2 -a ! -L f1 -a ! -L f2 ] to be absolutely
- sure.
-
- >[....]
- >All three work, however the second points out a problem with the
- >Bourne shell: there is no "not" operator!
-
- As has been pointed out in other forums, the S5 /bin/sh and the ksh both
- support shell functions:
-
- not () { # also "function not {" in ksh
- if "$@"
- then return 1
- else return 0
- fi
- }
-
- if not x y z a ...
- then
- whatever
- fi
-
- Older /bin/sh versions leave you no choice:
-
- if x y z a ...
- then :
- else
- whatever
- fi
-
- A standard "not" operator would be nice, but shell functions and the test
- stuff outlined above would be even better! (No, let's not start a debate
- about shell functions vs. aliases vs. other shell features. We've already
- been through that once on unix-wizards a while back.)
- --
- Arnold Robbins
- CSNET: arnold@emory BITNET: arnold@emoryu1
- ARPA: arnold%emory.csnet@csnet-relay.arpa
- UUCP: { akgua, decvax, gatech, sb1, sb6, sunatl }!emory!arnold
-
- Volume-Number: Volume 8, Number 33
-
-