[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: typeset -p on an empty integer variable is an error. (plus -v test w
From: |
John Kearney |
Subject: |
Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements) |
Date: |
Mon, 14 Jan 2013 20:08:53 +0100 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 |
Am 14.01.2013 14:33, schrieb Greg Wooledge:
> On Sun, Jan 13, 2013 at 03:31:24AM +0100, John Kearney wrote:
>> set -o errexit
>> test_func() {
>> [ ! -d test ] && echo test2
>> }
>>
>> echo test3
>> test_func
>> echo test4
>>
>> now so long as test doesn't exist in the cwd it should errexit.
>> at least it did for me just now.
> Cannot reproduce.
>
> imadev:~$ cat bar
> #!/bin/bash
>
> set -e
> f() { test ! -d nosuchdir && echo no dir; }
> f
> echo survived
> imadev:~$ ./bar
> no dir
> survived
the "no dir" above means that the test didn't fail. The exit only
happens if the test fails. Sorry I keep seeming to make typos. I really
need more sleep.
this should exit.
#!/bin/bash
set -e
f() { test -d nosuchdir && echo no dir; }
echo testings
f
echo survived
All I was pointing out that its safer to use syntax
[] ||
or
[] && ||
you always need a || on a one liner to make sure the return value of the
line is a 0.
this isn't necessary in the script body I think but in a function it is,
unless its the last command then it will be auto returned..
but lets say you want to do 2 things in a function you have to do
something like.
f(){
mkdir "${1%/*}" ||return $? # so the line doesn't return an error.
touch "${1}"
}
any way it is nearly always something that should be being done anyway.
It only the conditional one liners that tend to frustrate people a lot
from what I've seen.
- typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Dan Douglas, 2013/01/11
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/11
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Dan Douglas, 2013/01/11
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/11
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Dan Douglas, 2013/01/12
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/12
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Chet Ramey, 2013/01/12
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/12
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Greg Wooledge, 2013/01/14
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements),
John Kearney <=
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Greg Wooledge, 2013/01/14
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/14
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Chet Ramey, 2013/01/14
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/15
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Ken Irving, 2013/01/14
- Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), John Kearney, 2013/01/14
Re: typeset -p on an empty integer variable is an error. (plus -v test w/ array elements), Chet Ramey, 2013/01/11