On Mon, May 04, 2020 at 08:37:38AM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > Hmm, somehow I didn't know about that rule. We have many cases already > > in the test suite and elsewhere (try grepping for '$(([a-z]', which > > isn't exhaustive but turns up many examples). > > > > Maybe it's time to loosen the rule? > > Let's do that. It's time. Here it is in patch form for your convenience. -- >8 -- Subject: CodingGuidelines: drop arithmetic expansion advice to use "$x" The advice to use "$x" rather than "x" in arithmetric expansion was working around a dash bug fixed in 0.5.4. Even Debian oldstable has 0.5.7 these days. And in the meantime, we've added almost two dozen instances of the "x" form which you can find with: git grep '$(([a-z]' and nobody seems to have complained. Let's declare this workaround obsolete and simplify our style guide. Helped-by: Danh Doan <congdanhqx@xxxxxxxxx> Signed-off-by: Jeff King <peff@xxxxxxxx> --- Documentation/CodingGuidelines | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index 390ceece52..a89e8dcfbc 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -95,10 +95,6 @@ For shell scripts specifically (not exhaustive): - We use Arithmetic Expansion $(( ... )). - - Inside Arithmetic Expansion, spell shell variables with $ in front - of them, as some shells do not grok $((x)) while accepting $(($x)) - just fine (e.g. dash older than 0.5.4). - - We do not use Process Substitution <(list) or >(list). - Do not write control structures on a single line with semicolon. -- 2.26.2.957.g6dc93e954a