Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Jul 2013 21:22:47 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r252609 - stable/9/bin/sh
Message-ID:  <201307032122.r63LMlgV022204@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jilles
Date: Wed Jul  3 21:22:47 2013
New Revision: 252609
URL: http://svnweb.freebsd.org/changeset/base/252609

Log:
  MFC r248692: sh(1): Mention possible ambiguities with $(( and ((.
  
  In some other shells, things like $((a);(b)) are command substitutions.
  
  Also, there are shells that have an extension ((ARITH)) that evaluates an
  arithmetic expression and returns status 1 if the result is zero, 0
  otherwise. This extension may lead to ambiguity with two subshells starting
  in sequence.

Modified:
  stable/9/bin/sh/sh.1
Directory Properties:
  stable/9/bin/sh/   (props changed)

Modified: stable/9/bin/sh/sh.1
==============================================================================
--- stable/9/bin/sh/sh.1	Wed Jul  3 21:21:54 2013	(r252608)
+++ stable/9/bin/sh/sh.1	Wed Jul  3 21:22:47 2013	(r252609)
@@ -32,7 +32,7 @@
 .\"	from: @(#)sh.1	8.6 (Berkeley) 5/4/95
 .\" $FreeBSD$
 .\"
-.Dd November 5, 2011
+.Dd March 24, 2013
 .Dt SH 1
 .Os
 .Sh NAME
@@ -1061,6 +1061,9 @@ A subshell environment may be implemente
 If job control is enabled in an interactive shell,
 commands grouped in parentheses can be suspended and continued as a unit.
 .Pp
+For compatibility with other shells,
+two open parentheses in sequence should be separated by whitespace.
+.Pp
 The second form never forks another shell,
 so it is slightly more efficient.
 Grouping commands together this way allows the user to
@@ -1604,6 +1607,16 @@ and
 .Ic times
 returns information about the same process
 if they are the only command in a command substitution.
+.Pp
+If a command substitution of the
+.Li $(
+form begins with a subshell,
+the
+.Li $(
+and
+.Li (
+must be separated by whitespace
+to avoid ambiguity with arithmetic expansion.
 .Ss Arithmetic Expansion
 Arithmetic expansion provides a mechanism for evaluating an arithmetic
 expression and substituting its value.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307032122.r63LMlgV022204>