GNU bash (sürüm 4.0.35 (1) -elease (x86_64-suse-linux-gnu) kullanarak, Normal İfadeler ile bir testi iptal etmek istiyorum.Örneğin, PATH'a koşullu olarak bir yol eklemek istiyorum değişken, yol zaten orada olduğu gibi değilse: orada bunu yapmak için bir milyon yolu vardır ancak koşullu bir şekilde ortadan kalkacağı eğer ne öğrenmek istiyorum gibi eminimnasıl bash komut düzenli ifadeler ile bir test inkâr edersiniz?
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
(hatalı) 'de:!
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
Teşekkür
Oye vey! Sadece perl'in galaksiler arası özel karakter çılgınlığını güvenle savunduğumda, kendimi bash uzayında (yerleştirme) kaybettiğimi buldum! (Benim bağırsağımı bir piton gibi sıkmaktan korkuyorum.) Teşekkürler! –