l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2008 Jan 18 11:58

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] bash, short circuit logic, and errexit
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] bash, short circuit logic, and errexit

On Fri, Jan 18, 2008 at 11:08:47AM -0800, Bryan Richter bryan.richter-at-gmail.com |lugod| wrote:
> Does everyone agree that the following script shouldn't last forever?
> And if you agree, does it last forever nonetheless?
> ----------
> #!/bin/bash
> set -e
> false && false;
> while true; do
>     echo "Still here"
>     sleep 1
> done
> ---------
> I discovered that 'diff -q $file1 $file2 && echo "no differences"'
> wasn't ending my script, in spite of having 'set -e'. From the example
> above, which does last forever, it looks like all short-circuit logic
> confounds it.
> bash 3.00.15(1)-release
> Red Hat Enterprise Linux ES release 4 (Nahant Update 4)

You could work around the problem with 

diff -q $file1 $file2
echo "no differences"

If it exits on non-zero return.  The only problem with doing it that way
is clarity.
vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.