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: DJ Mills
Subject: Re: Should this be this way?
Date: Mon, 25 Feb 2013 20:31:05 -0500

On Mon, Feb 25, 2013 at 8:03 PM, Linda Walsh <bash@tlinx.org> 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.
>
> 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]
> 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.
>
>
>
>
>
>
>

How are you calling the script without a shebang? Bash called as "sh" does
disable some bashisms, process substitution being one of them.


reply via email to

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