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! :)