Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14830

Re: Misbehavior with constants and bash script

Path csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: Misbehavior with constants and bash script
Date Mon, 19 Nov 2018 18:38:12 -0500
Organization ITS, Case Western Reserve University
Lines 73
Approved bug-bash@gnu.org
Message-ID <mailman.4283.1542670717.1284.bug-bash@gnu.org> (permalink)
References <857e2280-38c5-344e-1916-17a6c6c61b02@netsystem.de>
Reply-To chet.ramey@case.edu
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="KEuOBqHOJNVXV8DZJizZslXa3PJNHGilQ"
X-Trace usenet.stanford.edu 1542670718 30440 208.118.235.17 (19 Nov 2018 23:38:38 GMT)
X-Complaints-To action@cs.stanford.edu
Cc chet.ramey@case.edu
To Alexander Reintzsch <Alexander.Reintzsch@netsystem.de>, "bug-bash@gnu.org" <bug-bash@gnu.org>
Envelope-to bug-bash@gnu.org
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:cc:subject:to:references:from:openpgp :autocrypt:organization:message-id:date:user-agent:mime-version :in-reply-to; bh=NaX0ZNPgnDpRUq1dJ9VuEzPV/pHKJ44Hik8lpdfOlRI=; b=ZyG2ksazRuhOZ5CzUty/6agSNYwrfWnZAvDNFexU4tFAfsgAnd6+Igi77a1cYGwv0f CgUWScbyhrZM36w6cznlDJkKqmI//4olz1ibS4TnnvHwG6CZcUo5AmBWUMT4oqPRk4xU nyDn49oPd+TMbtB+c5O/kLor5OFT+PLbLs8+Hypk1YvpYy4l23sATk904lM77BRqhXIY +EwCQM39IX2ivdwQ8DrS8D+J0yaxzqzbxCTn2vlSFKhu/Nl47i1VemnAcFQ+FWWyI0nA EvlN7BXwsgjrpNNXTrDNHsQWefF1qq6lFPTBV2lQdDPiY/m+ihazPUzaS7COeUZBGIvt eAyA==
X-Gm-Message-State AGRZ1gIGUkpYY1gnW0Lc4/7JeG8wZPwUfCY8FFZPEDvY8R5mC5uJjBXS G3UaTrFX5pIrnA6hUMAdEr9rGBY7Lif1pl5CWQ0yLRepivopaJ59Btw7Gs7lwKf/ji6tWzGFkJj HyDGYGivN90M=
X-Received by 2002:a24:9c8:: with SMTP id 191-v6mr151379itm.151.1542670710923; Mon, 19 Nov 2018 15:38:30 -0800 (PST)
X-Google-Smtp-Source AFSGD/XcL43GGs/qXllv5JJTBeZ2iZV11Bi7wCHCLr0wjyh1tm+6UyS78VE4/4ltaNq+Uv7BrmjsMA==
X-Received by 2002:a24:9c8:: with SMTP id 191-v6mr151363itm.151.1542670710609; Mon, 19 Nov 2018 15:38:30 -0800 (PST)
Openpgp preference=signencrypt
Autocrypt addr=chet.ramey@case.edu; prefer-encrypt=mutual; keydata= xsDiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8DpvgRh40Yp AwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qlyyX+2BZU+okBUqoWQ koWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJOwyBFJdugjfwjSoRSwDOIMf0D /iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZbN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqES GZragl4VqJfxBr29Ag0UDvNbUbXoxQsARdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQ OTGOCa4W2o29nFfFjQrsrrYHzVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP2 1Wf7f5niCCRKQLNyUy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWm W5fsm/di50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJM0aQ2hldCBSYW1l eSA8Y2hldEBjd3J1LmVkdT7CYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAUCQ+La kQIZAQAKCRC7WGnwZOp0q9rGAJ4sRGLmlF8klZTH75z7jyQScpU6aACeNMahjWIhumt4u96d 9mdMJqlabVnOwE0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWanIFOXIndqhvU13cDbQ/Wt 5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0B2pBLX/C10W1aY+cUrXZgXUGVISE MmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98FL69l6/K4xeNSBRM/AAMHA/wNAmRBpcyK0+Vg gZ5esQaIP/LyolAm2qwcmrd3dZi+g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/J90lxrVn QwucZmfz9zgWDkT/MpfB/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdfaKAiim0n VxxQmPmiRvtCmcJJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8Gs/zUzvX Mt7evaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ==
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
In-Reply-To <857e2280-38c5-344e-1916-17a6c6c61b02@netsystem.de>
X-Junkmail-Status score=7/90, host=mpv3-2015.case.edu
X-Junkmail-PrAS-Raw score=7/90, refid=2.7.2:2018.11.19.224216:17:7.944, ip=, rules=__YOUTUBE_RCVD, __X_GOOGLE_DKIM_SIGNATURE, __HAS_REPLYTO, __HAS_CC_HDR, __SUBJ_REPLY, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __TO_MALFORMED_2, __TO_NAME, __TO_NAME_DIFF_FROM_ACC, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CTYPE_HAS_BOUNDARY, __CTYPE_MULTIPART, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __MIME_TEXT_P2, __HAS_ATTACHMENT1, __ANY_URI, __URI_WITH_PATH, __URI_NO_WWW, __CP_URI_IN_BODY, __SUBJ_ALPHA_NEGATE, __URI_IN_BODY, __URI_NOT_IMG, __FORWARDED_MSG, __NO_HTML_TAG_RAW, __ATTACHMENT_SIZE_0_10K, __HAS_ATTACHMENT2, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_2000_2999, __MIME_TEXT_P1, __URI_NS, HTML_00_01, HTML_00_10, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138
X-Mirapoint-Virus-RAPID-Raw score=unknown(0), refid=str=0001.0A020207.5BF34978.001D,ss=1,re=0.000,fgs=0, ip=0.0.0.0, so=2016-11-06 16:00:04, dmn=2011-05-27 18:58:46
X-Mirapoint-Loop-Id 40c20659ae20897ce6bbfb2a6d18cf0a
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
X-Received-From 129.22.103.194
X-Content-Filtered-By Mailman/MimeDel 2.1.21
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:14830

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

On 11/19/18 3:04 PM, Alexander Reintzsch wrote:
> Hello,
> 
> I think I have found some unexpected behavior related to constants in
> bash scripts. I have attached the short proof of concept bash script.
> 
> Usually bash scripts continue when they face an error with one command
> but this script shows some weired behavior. It exits all the functions
> it has called without executing the remaining commands and the continues
> to run in the top scope of the script.
> 
> This only happens when a constant declared with
> declare -r myConst="myConstantValue"
> is attempted to be redefined using
> myConst="new value"
> but not with
> declare myConst="new value"
> 
> This behavior doesn't seem right.

OK, let's unpack this.

The variable assignment without declare has the posix semantics, in that
it constitutes a variable assignment error. When the shell is in posix
mode, it exits. When not in posix mode, the shell returns to the top level
and continues execution. It could return to the previous execution context
-- a virtual `return' -- or exit as it does in posix mode but has never
done so.

When the assignment is used as an argument to `declare', it causes the
declare command to fail, but it's not a variable assignment error, so
the script simply continues as with any other failed command.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Misbehavior with constants and bash script Chet Ramey <chet.ramey@case.edu> - 2018-11-19 18:38 -0500

csiph-web