git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] CodingGuidelines: Add note forbidding use of 'which' in shell scripts

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 27, 2012, 18:56 UTC
Message-ID
<7vty2c85ql.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1330117921-8257-2-git-send-email-tim.henigan@gmail.com>
Tim Henigan <tim.henigan@gmail.com> writes:
Show 11 quoted lines
> diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
> index a4ffe7c..3505a4b 100644
> --- a/Documentation/CodingGuidelines
> +++ b/Documentation/CodingGuidelines
> @@ -44,6 +44,10 @@ For shell scripts specifically (not exhaustive):
>     properly nests.  It should have been the way Bourne spelled
>     it from day one, but unfortunately isn't.
>  
> + - The use of 'which' is not allowed.  The output of 'which' is not
> +   machine parseable and its exit code is not reliable across
> +   platforms.

It is more helpful to say "If you want to do Z, use X, not Y because Y is broken for such and such reasons", rather than "Never use Y because Y is broken ...".

In this case, Z is "find out if a command is available on user's $PATH", and X is "type", I think.

Previous: Tim HeniganNext: Junio C Hamano
Message 3 of 4 in “CodingGuidelines: Add a note about spaces after redirection”
  1. 1/2 CodingGuidelines: Add a note about spaces after redirectionTim Henigan, Feb 24, 2012
  2. 2/2 CodingGuidelines: Add note forbidding use of 'which' in shell scriptsTim Henigan, Feb 24, 2012
  3. Junio C HamanoFeb 27, 2012
  4. Junio C HamanoFeb 27, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.