Bash: (foo==0)?foo=1:foo=0 valid?
Patrick O'Callaghan
pocallaghan at gmail.com
Sat Jul 2 22:23:10 UTC 2011
On Sat, 2011-07-02 at 14:31 -0700, Daniel B. Thurman wrote:
> On 07/02/2011 02:15 PM, Robert Nichols wrote:
> > On 07/02/2011 02:11 PM, inode0 wrote:
> >> On Sat, Jul 2, 2011 at 2:07 PM, Daniel B. Thurman<dant at cdkkt.com> wrote:
> >>> I used: (((foo==0)?foo=1:0)) and it works in a bash script!
> >> I don't think that is quite the same as what I'm guessing your
> >> original attempt intended. In this case if foo does not equal 0 to
> >> begin with it won't be set to 0. Perhaps that doesn't matter in your
> >> particular case.
> > Indeed, I got it wrong too. Looks like it needs to be:
> >
> > (((foo==0)?(foo=1):(foo=0)))
> >
> > Frankly, I don't think I'll be using that syntax much. Too many ways
> > to get it wrong.
> >
> Yeah, you guys are correct, it does not toggle
> which was my intent. So I basically went back
> to the trusty if-else-fi statement of which anyone
> can read without much obscurity. :P
>
> Thanks to all, for contributing!
>
((foo=!foo))
or if using an interactive Shell:
((foo=\!foo))
poc
More information about the users
mailing list