From owner-freebsd-bugs@FreeBSD.ORG Tue Feb 26 18:30:02 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 4F4174D7 for ; Tue, 26 Feb 2013 18:30:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1E0161646 for ; Tue, 26 Feb 2013 18:30:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r1QIU1ft043790 for ; Tue, 26 Feb 2013 18:30:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r1QIU1x4043789; Tue, 26 Feb 2013 18:30:01 GMT (envelope-from gnats) Resent-Date: Tue, 26 Feb 2013 18:30:01 GMT Resent-Message-Id: <201302261830.r1QIU1x4043789@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, ZAHEMSZKY@FreeBSD.org, Gabor Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E70564A9 for ; Tue, 26 Feb 2013 18:27:04 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id D8274162D for ; Tue, 26 Feb 2013 18:27:04 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r1QIR498017393 for ; Tue, 26 Feb 2013 18:27:04 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r1QIR4MT017392; Tue, 26 Feb 2013 18:27:04 GMT (envelope-from nobody) Message-Id: <201302261827.r1QIR4MT017392@red.freebsd.org> Date: Tue, 26 Feb 2013 18:27:04 GMT From: ZAHEMSZKY@FreeBSD.org, Gabor To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: bin/176444: strange behaviour of the $(( )) form in sh(1) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2013 18:30:02 -0000 >Number: 176444 >Category: bin >Synopsis: strange behaviour of the $(( )) form in sh(1) >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Feb 26 18:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: ZAHEMSZKY, Gabor >Release: 9.1-RELEASE >Organization: Zahemszky Ltd >Environment: FreeBSD Vasarely.Zahemszky.HU 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243826: Tue Dec 4 06:55:39 UTC 2012 root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: In "man sh" it's missing the ++ or -- operator from the description of Arithmetic Expansion. It's OK, as FreeBSD's sh doesn't understand it. But! The main problem, that sh isn't very intelligent in the handling of that form. Look: $ sh $ a=1 $ : $(( a++ )) arithmetic expression: expecting primary: " a++ " $ echo $a 1 $ : $(( ++a )) $ echo $a 1 $ : $(( a-- )) arithmetic expression: expecting primary: " a-- " $ : $(( --a )) $ echo $a 1 As you can see, sh correctly generate an error message, if I try to use the postincrement/postdecrement form, but silently ignore my command, when I use the preincrement/predecrement form. Acrually, at least pdksh and bash knows it, so it should be better if sh understand these operators, too. Or, if it couldn't, it should generate errors in the "pre"-form. >How-To-Repeat: Try typing my example commands >Fix: >Release-Note: >Audit-Trail: >Unformatted: