Re: [PATCH] bash-completion: Print a useful error when called in a non-bash shell
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Aug 6, 2010, 21:31 UTC
- Message-ID
- <201008062331.38279.j6t@kdbg.org>
- In-Reply-To
- <4C50B005.1030004@pileofstuff.org>
On Donnerstag, 29. Juli 2010, Andrew Sayers wrote:
Show 5 quoted lines
> Detect whether the shell supports process substitution with <() > Shells that fail the test will not be able to load git-completion.bash > > If a bad shell is found, print a warning which gives the user as much > debugging information as possible.
This cannot work the way you implemented it:
> +$( > + exec 2>/dev/null > + $(exec < <( )) > + )
Any shell that does not support the <() syntax will have exited at this time with a syntax error and never get to print something.
This could work:
(eval : '$(exec < <( ) )' 2>/dev/null)
> +if [[ 0 -ne $? ]]
Of course, you must not use unportable [[ ]] syntax here, either.
> +then > + cat <<EOF > ...
-- Hannes