Używając GNU bash (wersja 4.0.35 (1) -release (x86_64-suse-linux-gnu), chciałbym zanegować test za pomocą wyrażeń regularnych. Na przykład chciałbym warunkowo dodać ścieżkę do zmiennej PATH, jeśli ścieżki już tam nie ma, jak w:
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
Jestem pewien, że istnieje milion sposobów, aby to zrobić, ale chciałbym wiedzieć, czy warunek można w jakiś sposób zanegować, tak jak w (błędnym):
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