bug-bash
[Top][All Lists]
Advanced

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

Re: Should this be this way?


From: Roman Rakus
Subject: Re: Should this be this way?
Date: Tue, 26 Feb 2013 10:22:28 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0

On 02/26/2013 02:03 AM, Linda Walsh wrote:
My login shell is /bin/bash (i.e. not /bin/sh); SHELL=/bin/bash as well.
Typing 'which bash' gives /bin/bash, and whence bash: bash is /bin/bash.
which is not always correct. Use type builtin.

I had the foll0wing script which acts differently based on
whether or not it has a #!/bin/bash at the top: (i.e., as it is
displayed below, it fails; one need remove the [] from the first
line for it to work.
================
#[!/bin/bash]
I think the line above will produce unspecified behavior.
while read fn;do
   base=${fn%.*}
   if [[ -e $base ]]; then
     if [[ $base -ot $fn ]]; then echo "compressed version ($fn) seems newer"
     elif [[ $base -nt $fn ]]; then echo "uncompressed version ($base)
seem newer"
     else echo "both versions ($base) are same age"
     fi
   else
     echo "No uncompressed version of $base exists"
   fi
done < <(find . -type f -name \*.[0-9].\*[zZ]\* )
-------------
The error:
./manscan.sh: line 12: syntax error near unexpected token `<'
./manscan.sh: line 12: `done < <(find . -type f -name \*.[0-9].\*[zZ]\* )'

Why would this script behave differently if the first line
exists or not?  (Putting the !shell in square brackets,
made it a comment, not an interpreter spec, thus the same
effect as if it wasn't there ('cept the line number of the error is 1
less if you don't have the line! ;-)).

So...is this correct behavior for some[inane POSIX] reason?
Seems a bit odd to me.
Is kernel or bash processing the shebang?

RR









reply via email to

[Prev in Thread] Current Thread [Next in Thread]