Confronto tra due stringhe in Bash


13

Vorrei fare uno script che elimini una directory rmdirdopo aver confermato con una password usando readper impostare la variabile.

Finora ho questo:

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

Quindi, ho il -xtentativo di eseguire il debug ma ogni volta che lo script non riesce a riecheggiare (se inserisco la password errata) o non rimuoverà la directory necessaria.

Se qualcuno ha uno script modificabile che potrei usare o se potresti evidenziare i problemi con lo script corrente, sarebbe fantastico.

Risposte:



6

Nello script bash è necessario confrontare due variabili con il metodo seguente.

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

Gli spazi sono importanti


4

Puoi anche usare GNU test, ad esempio:

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

Nel tuo contesto, è:

test "$S1" = "$S2" && rmdir -v /home/william/test
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.