CodingGuidelines: reword parameter expansion section

Group entries related to parameter substitutions together and avoid
using the word "regexp" to refer to the ${parameter/pattern/string}
substitution (banned), as the pattern there is a shell glob and not
a regular expression.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2010-10-13 11:15:14 -07:00
parent 537497be58
commit bc97994530
1 changed files with 15 additions and 12 deletions

View File

@ -35,25 +35,28 @@ For shell scripts specifically (not exhaustive):
properly nests. It should have been the way Bourne spelled properly nests. It should have been the way Bourne spelled
it from day one, but unfortunately isn't. it from day one, but unfortunately isn't.


- We use POSIX compliant parameter substitutions and avoid bashisms;
namely:

- We use ${parameter-word} and its [-=?+] siblings, and their - We use ${parameter-word} and its [-=?+] siblings, and their
colon'ed "unset or null" form. colon'ed "unset or null" form.


- We use ${parameter#word} and its [#%] siblings, and their - We use ${parameter#word} and its [#%] siblings, and their
doubled "longest matching" form. doubled "longest matching" form.


- 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).

- No "Substring Expansion" ${parameter:offset:length}. - No "Substring Expansion" ${parameter:offset:length}.


- No shell arrays. - No shell arrays.


- No strlen ${#parameter}. - No strlen ${#parameter}.


- No regexp ${parameter/pattern/string}. - No pattern replacement ${parameter/pattern/string}.

- 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). - We do not use Process Substitution <(list) or >(list).