I have my Bash code like this:
copiedFlag=false
..
if [...]
cp originalFile newFile && copiedFlag=true
fi
..
if[....]
copiedFlag || ( cp originalFile newFile && copiedFlag=true )
fi
..
if [ copiedFlag == true ]; then
cp newFile originalFile
fi
..
The compound condition copiedFlag || ( cp originalFile newFile && copiedFlag=true ) somehow doesn't work.
But if I do this, it works:
copiedFlag || cp originalFile newFile && copiedFlag=true
This is an important step in my logic, hence I want to ensure that my assignment is absolutely correct by enclosing it in braces. Why does this not work? What am I doing wrong?
$:$copiedFlag || ( cp originalFile newFile && copiedFlag=true )copiedFlageverywhere outside assignments to it, thus also inif [ $copiedFlag == true ]; then ...