[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unsuccessful assignment of a readonly variable does not return 1
From: |
Chet Ramey |
Subject: |
Re: Unsuccessful assignment of a readonly variable does not return 1 |
Date: |
Mon, 12 Dec 2016 15:06:12 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 |
On 12/12/16 5:11 AM, Laur Aliste wrote:
>
> Hi,
> is it accepted behavior for a failing assignment of a readonly variable to
> return successfully?
The readonly builtin did not fail; the variable `j' was set readonly, and,
as a side effect, the shell assigned it the null string.
The assignment to i fails because Posix says it should:
"If there is no command name, but the command contained a command
substitution, the command shall complete with the exit status of the last
command substitution performed."
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01
>
> See following code:
>
> fail() {
> return 1
> }
>
> o() {
> local i j
>
> i="$(fail)" || echo "i init failed"
> readonly j="$(fail)" || echo "j init failed" # this echo is not executed
> }
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/