Jeff Abrahamson on 19 Feb 2006 20:51:10 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] bash and if


In a bash script I want to compare two files (one or both of which may
not exist) and take a certain action if they *both* exist and are
identical.

Refresher, cmp returns 0 on equality, 1 on inequality, 2 on error such
as one or both files doesn't exist.

The following attempt fails miserably (at the syntax level, for
obvious reasons):

    if [ (cmp -s "$f" "$dir2/$b")  -a $? == 0 ]; then

Anyone know how to combine a subshell invocation with a logical
operation in an if clause?

I'd like to be more elegant than a double if, merely on principle:

    if [ -r "$f" -a -r "$dir2/$b" ]; then
        if ( cmp -s ... ); then ...

-- 
 Jeff

 Jeff Abrahamson  <http://www.purple.com/jeff/>    +1 215/837-2287
 GPG fingerprint: 1A1A BA95 D082 A558 A276  63C6 16BF 8C4C 0D1D AE4B

Attachment: signature.asc
Description: Digital signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug