Re: [PATCH] shell portability: Use sed instead of non-portable variable expansion
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 5, 2011, 08:22 UTC
- Message-ID
- <7vaaajcsb7.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <4E648031.6050607@viscovery.net>
Johannes Sixt <j.sixt@viscovery.net> writes:
Show 14 quoted lines
> 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 <j6t@kdbg.org>
> 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 <j6t@kdbg.org>
> ---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}.