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