Bash: (foo==0)?foo=1:foo=0 valid?
Daniel B. Thurman
dant at cdkkt.com
Sat Jul 2 19:07:29 UTC 2011
On 07/02/2011 11:30 AM, Robert Nichols wrote:
> On 07/02/2011 12:45 PM, Daniel B. Thurman wrote:
>> I seem to forget my shell programming
>> but is the following statement valid?
>>
>> ($foo==0)?foo=1:foo=0
>>
>> I thought it was called the tristate conditional
>> operator but in any case I could not find it in
>> google.
> You need to enclose the entire expression in double parentheses to make
> bash parse it as an expression. Plus, your syntax is slightly wrong:
>
> ((($foo==0)?foo=1:0))
>
> or, since within an expression the '$' to reference a variable is optional:
>
> (((foo==0)?foo=1:0))
>
> and, if you want to insert the result directly into a command line:
>
> echo $(((foo==0)?1:0))
> or
> echo $(((foo==0)?foo=1:0))
>
Thanks - this is good information!
I used: (((foo==0)?foo=1:0)) and it works in a bash script!
Will add this to my bookmarks! :)
More information about the users
mailing list