小编典典

如何在 bash 脚本中使用正则表达式否定测试?

all

使用 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

阅读 65

收藏
2022-05-27

共1个答案

小编典典

你说得对,只是在!和之[[类之间放一个空格if ! [[

2022-05-27