On Wed, Feb 02, 2005 at 10:45:31AM -0500, Bob Bell wrote: > On Wed, Jan 12, 2005 at 12:15:46AM -0500, Derek Martin wrote: > > #!/bin/sh > > # NEVER start shell scripts as #!/bin/bash -- it can lead to strange > > # and unintended results. > > Like what? I've never had a problem. If I specifically am using bash > features, I always say "/bin/bash", as "/bin/sh" could mean Bourne shell > or POSIX shell.
If you invoke bash as /bin/bash, it will source all your environment files (usually just your .bashrc, since normally it won't be invoked as a login shell in this manner). This can cause unintended effects. I ran into this problem when I installed Debian 2.2 on one of my systems. When I logged into the system, IIRC X started up but I couldn't do anything in any of the xterms I started... That is, I never got a prompt, and the system came to a grinding halt. I was able to log in at a virtual console and see what was going on. In my .bashrc file, I had some code that used the which command to set some variables. On Debian 2.2, the which command was a shell script which was invoked as #!/bin/bash. This was causing an infinte loop, where a bazillion /usr/bin/which processes were running and not completing. IIRC the most bizarre part of this was that if I logged in (as myself) on the console, the effects were different than if I logged in under X. I was never able to determine why. Note that I set the resource XTerm*loginShell: true in my .Xdefaults file, so there should be no difference (that I can think of) between my xterm shells and one started on a VC. > > rsync <options> > > if ! $? ; then > > echo -e "\nrsync completed successfully!\n" > > else > > echo -e "\nrsync failed!\n!" > > fi > > That won't work. As you said, $? will evaluate to an integer, which the > shell will then (unsuccessfully) try to execute. You want either: You're right, sorry! My shell coding is a bit rusty these days. :( This is the one I meant: > if [ $? -eq 0 ] ; then -- Derek D. Martin http://www.pizzashack.org/ GPG Key ID: 0xDFBEAD02 -=-=-=-=- This message is posted from an invalid address. Replying to it will result in undeliverable mail. Sorry for the inconvenience. Thank the spammers.
pgpXPIKSxdCpV.pgp
Description: PGP signature