title: How do I negate a test with regular expressions in a bash script?
body: <p>Using GNU bash (version 4.0.35(1)-release (x86_64-suse-linux-gnu), I would like to negate a test with Regular Expressions. For example, I would like to conditionally add a path to the PATH variable, if the path is not already there, as in:</p>
  
  <pre><code>TEMP=/mnt/silo/bin
  if [[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH; else PATH=$PATH:$TEMP; fi
  TEMP=/mnt/silo/Scripts:
  if [[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH; else PATH=$PATH:$TEMP; fi
  TEMP=/mnt/silo/local/bin
  if [[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH; else PATH=$PATH:$TEMP; fi
  export PATH
  </code></pre>
  
  <p>I'm sure there are a million ways to do this, but what I would like to know is if the conditional can be negated somehow, as in (the erroneous):</p>
  
  <pre><code>TEMP=/mnt/silo/bin
  if ![[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH:$TEMP; fi
  TEMP=/mnt/silo/Scripts:
  if ![[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH:$TEMP; fi
  TEMP=/mnt/silo/local/bin
  if ![[ ${PATH} =~ ${TEMP} ]] ; then PATH=$PATH:$TEMP; fi
  export PATH
  </code></pre>