I am very sorry : the comment is wrong. I will repost shortly. Best regards 2014-05-15 16:17 GMT+02:00 Elia Pinto <gitter.spiros@xxxxxxxxx>: > Even though POSIX.1 lists -a/-o as options to "test", they are > marked "Obsolescent XSI". Scripts using these expressions > should be converted as follow: > > test "$1" -a "$2" > > should be written as: > > test "$1" && test "$2" > > Likewise > > test "$1" -o "$2" > > should be written as: > > test "$1" test "$2" > > But note that, in test, -a has higher precedence than -o while > "&&" and "||" have equal precedence in the shell. > > The reason for this is that the precedence rules were never well > specified, and this made many sane-looking uses of "test -a/-o" problematic. > > For example, if $x is "=", these work according to POSIX (it's not > portable, but in practice it's okay): > > $ test -z "$x" > $ test -z "$x" && test a = b > > but this doesn't > > $ test -z "$x" -a a = b > bash: test: too many arguments > > because it groups "test -n = -a" and is left with "a = b". > > Similarly, if $x is "-f", these > > $ test "$x" > $ test "$x" || test c = d > > correctly adds an implicit "-n", but this fails: > > $ test "$x" -o c = d > bash: test: too many arguments > > Signed-off-by: Elia Pinto <gitter.spiros@xxxxxxxxx> > --- > Inspired from this discussion http://permalink.gmane.org/gmane.comp.version-control.git/137056 > > git-submodule.sh | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/git-submodule.sh b/git-submodule.sh > index b55d83a..d89e1d0 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -864,7 +864,7 @@ Maybe you want to use 'update --init'?")" > then > subforce=$force > # If we don't already have a -f flag and the submodule has never been checked out > - if test -z "$subsha1" -a -z "$force" > + if test -z "$subsha1" || test -z "$force" > then > subforce="-f" > fi > @@ -1059,13 +1059,13 @@ cmd_summary() { > while read mod_src mod_dst sha1_src sha1_dst status sm_path > do > # Always show modules deleted or type-changed (blob<->module) > - test $status = D -o $status = T && echo "$sm_path" && continue > + ( test $status = D || test $status = T ) && echo "$sm_path" && continue > # Respect the ignore setting for --for-status. > if test -n "$for_status" > then > name=$(module_name "$sm_path") > ignore_config=$(get_submodule_config "$name" ignore none) > - test $status != A -a $ignore_config = all && continue > + test $status != A && test $ignore_config = all && continue > fi > # Also show added or modified modules which are checked out > GIT_DIR="$sm_path/.git" git-rev-parse --git-dir >/dev/null 2>&1 && > @@ -1125,7 +1125,7 @@ cmd_summary() { > *) > errmsg= > total_commits=$( > - if test $mod_src = 160000 -a $mod_dst = 160000 > + if test $mod_src = 160000 && test $mod_dst = 160000 > then > range="$sha1_src...$sha1_dst" > elif test $mod_src = 160000 > @@ -1162,7 +1162,7 @@ cmd_summary() { > # i.e. deleted or changed to blob > test $mod_dst = 160000 && echo "$errmsg" > else > - if test $mod_src = 160000 -a $mod_dst = 160000 > + if test $mod_src = 160000 && test $mod_dst = 160000 > then > limit= > test $summary_limit -gt 0 && limit="-$summary_limit" > @@ -1233,7 +1233,7 @@ cmd_status() > say "U$sha1 $displaypath" > continue > fi > - if test -z "$url" || ! test -d "$sm_path"/.git -o -f "$sm_path"/.git > + if test -z "$url" || ! test -d "$sm_path"/.git || test -f "$sm_path"/.git > then > say "-$sha1 $displaypath" > continue; > @@ -1402,7 +1402,7 @@ then > fi > > # "--cached" is accepted only by "status" and "summary" > -if test -n "$cached" && test "$command" != status -a "$command" != summary > +if test -n "$cached" && test "$command" != status && test "$command" != summary > then > usage > fi > -- > 1.7.10.4 > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html