From: Junio C Hamano Date: Mon, 05 Sep 2011 08:22:04 GMT Subject: Re: [PATCH] shell portability: Use sed instead of non-portable variable expansion Message-ID: <7vaaajcsb7.fsf@alter.siamese.dyndns.org> In-Reply-To: <4E648031.6050607@viscovery.net> Johannes Sixt writes: > Am 9/5/2011 9:09, schrieb Junio C Hamano: >> By the way, t9010 uses ${#parameter} (strlen) which is bashism we forbid, >> and it needs to be rewritten (David CC'ed). > > Actually, no. It is perfectly valid POSIX. So we would need this patch. > > --- 8< --- > From: Johannes Sixt > Subject: [PATCH] CodingGuidelines: ${#parameter} is POSIX and should be allowed > > See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02. > > Signed-off-by: Johannes Sixt > --- I would prefer to play it safe at least for now, especially before 1.7.7 ships. Documentation/CodingGuidelines | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index fe1c1e5..594fb76 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -52,7 +52,7 @@ For shell scripts specifically (not exhaustive): - No shell arrays. - - No strlen ${#parameter}. + - No strlen ${#parameter} (even though it is in POSIX). - No pattern replacement ${parameter/pattern/string}.