Bash'deki iki dizeyi karşılaştırma


13

Değişkeni ayarlamak için rmdirkullanarak bir parola ile onayladıktan sonra bir dizini silen bir komut dosyası yapmak istiyorum read.

Şimdiye kadar bu var:

#!/bin/bash -x
echo "Password:"
read -t 30 S1
    S2='55555'
if [ $S1=$S2 ]; then
    rmdir /home/william/test
else
    echo "fail"
sleep 10
fi

Yani, ben -xhata ayıklamak için denemek zorunda ama komut dosyası ya yankı başarısız (şifre yanlış koymak) ya da gerekli dizini kaldırmak alışkanlık her zaman.

Birisi kullanabileceğim değiştirilebilir bir komut dosyası varsa veya geçerli komut dosyasıyla ilgili sorunlara dikkat çekerseniz harika olurdu.

Yanıtlar:



6

Bash komut dosyasında iki değişkeni aşağıdaki yöntemle karşılaştırmanız gerekir.

if [ "var1" != "var2" ]; then
  Do something
fi;

Alanlar önemlidir


4

GNU da kullanabilirsiniz test, örneğin:

test s1 = s2 && echo Equal || echo Not equal

Bağlamınızda, bu:

test "$S1" = "$S2" && rmdir -v /home/william/test
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.