我想使用GNU bash (版本为4.0.35(1)-release (x86_64-suse-linux-gnu)),使用正则表达式来否定一个测试。例如,当路径不存在时,我想将路径条件性地添加到PATH变量中,如下所示:
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
我确定有无数种方法可以做到这一点,但我想知道的是条件是否可以以某种方式被否定,就像(错误的):
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
[[
前面而不是里面,比如if [[ ! "$value" =~ $regex ]];
这样的写法吗?例如, Sublime Text 如果将它放在外面,会显示奇怪的高亮效果:https://i.imgur.com/AQWuFtf.png - Artfaith