Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #16537
| Path | csiph.com!goblin2!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Chris Elvidge <celvidge001@gmail.com> |
| Newsgroups | gnu.bash.bug |
| Subject | Re: Return from function depending on number of parameters |
| Date | Sat, 4 Jul 2020 11:44:22 +0100 |
| Lines | 57 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.948.1593878708.2574.bug-bash@gnu.org> (permalink) |
| References | <b1c19d38-64c0-f1ae-d08a-1ada435a0022@gmail.com> <4766f763-84b7-f018-f925-7c6390ed7523@archlinux.org> <rdpmi7$112n$1@ciao.gmane.io> |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | usenet.stanford.edu 1593878709 21161 209.51.188.17 (4 Jul 2020 16:05:09 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| To | bug-bash@gnu.org |
| Envelope-to | bug-bash@gnu.org |
| X-Injected-Via-Gmane | http://gmane.org/ |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 |
| In-Reply-To | <4766f763-84b7-f018-f925-7c6390ed7523@archlinux.org> |
| Content-Language | en-GB |
| Received-SPF | pass client-ip=116.202.254.214; envelope-from=gnu-bug-bash-3@m.gmane-mx.org; helo=ciao.gmane.io |
| X-detected-operating-system | by eggs.gnu.org: First seen = 2020/07/04 12:00:04 |
| X-ACL-Warn | Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] |
| X-Spam_score_int | 59 |
| X-Spam_score | 5.9 |
| X-Spam_bar | +++++ |
| X-Spam_report | (5.9 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_03_06=1.592, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN |
| X-Spam_action | reject |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.23 |
| 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 | <https://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> |
| X-Mailman-Original-Message-ID | <rdpmi7$112n$1@ciao.gmane.io> |
| X-Mailman-Original-References | <b1c19d38-64c0-f1ae-d08a-1ada435a0022@gmail.com> <4766f763-84b7-f018-f925-7c6390ed7523@archlinux.org> |
| Xref | csiph.com gnu.bash.bug:16537 |
Show key headers only | View raw
On 03/07/2020 11:16 pm, Eli Schwartz wrote: > On 7/3/20 2:00 PM, Chris Elvidge wrote: >> I've used 'return $((!$#))' and 'return $[!$#]' to return an error if no >> parameters given to function. >> >> Tested in a bash script 'exit $((!$#)) / $[!$#]' - both work. >> >> 'echo $((!$#)) / $[!$#]' - both echo 1 when no params, 0 when any >> number of params. >> >> I'm told ( https://wiki.bash-hackers.org/scripting/obsolete ) that >> $[...] is obsolete and that $((...)) should be used instead. OK so far. >> >> However 'N=0; echo $((!$N))' gives an error at the bash prompt. 'echo >> $[!$N]' echo's 1 as expected. > > "gives an error" is a useless bug report. It works for me. > > $ N=0; echo $((!$N)) > 1 > > My initial reaction to reading this thread is head scratching! > > As the other reply mentioned, there's actually a good explanation for > why we get different results -- I disabled an annoying feature. > > $ set -o histexpand > > Now here's a useful bug report. "When I run this, I get the following > incorrect results or error message": > > $ N=0; echo $((!$N)) > N=0; echo $((histexpandN)) > 0 > $ N=0; echo $((!$N)) > N=0; echo $(()N)) > -bash: syntax error near unexpected token `)' > $ N=0 > $ echo $((!$N)) > echo $((N=0N)) > -bash: N=0N: value too great for base (error token is "0N") > > ... > > From there, people can give useful advice for solving the problem. (My > preferred advice is "disable histexpand".) > Thanks for the info on histexpand and the advice on bug reporting. Obviously I didn't read the manual - I didn't know about histexpand. Should that be 'set +o histexpand' to turn it off? -- Chris Elvidge England
Back to gnu.bash.bug | Previous | Next | Find similar
Re: Return from function depending on number of parameters Chris Elvidge <celvidge001@gmail.com> - 2020-07-04 11:44 +0100
csiph-web