Membandingkan dua string dalam Bash


13

Saya ingin membuat skrip yang menghapus direktori dengan rmdirsetelah mengonfirmasi menggunakan kata sandi readuntuk mengatur variabel.

Sejauh ini saya punya ini:

#!/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

Jadi, saya punya -xuntuk mencoba men-debug itu tetapi setiap kali skrip gagal untuk echo (jika saya salah memasukkan kata sandi) atau tidak akan menghapus direktori yang diperlukan.

Jika seseorang memiliki skrip yang dapat dimodifikasi yang dapat saya gunakan atau jika Anda dapat menunjukkan masalah dengan skrip saat ini, akan lebih bagus.

Jawaban:



6

Dalam bash scripting Anda perlu membandingkan dua variabel dengan metode di bawah ini.

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

Spasi itu penting


4

Anda juga dapat menggunakan GNU test, misalnya:

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

Dalam konteks Anda, itu adalah:

test "$S1" = "$S2" && rmdir -v /home/william/test
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.