Wie erkennt man, ob „/dev/mapper/dev0“ in Bash vorhanden ist?

Wie erkennt man, ob „/dev/mapper/dev0“ in Bash vorhanden ist?

Ich versuche, eine Entschlüsselungssoftware für mein NAS zu erstellen, sodass alle Laufwerke automatisch gemountet und entschlüsselt werden.

Aber ich muss wissen, ob es sudo cryptsetup luksOpen /dev/blahblahblah dev0existiert, nachdem versucht wurde, es zu öffnen.

Wie erkenne ich das in Bash? Ich habe Folgendes versucht:

if [ -e /dev/mapper/dev0 ]; then

Aber das schien nicht zu funktionieren. Hat jemand eine Idee?


Dies ist der gesamte Code:

fail="true"
LUKS_PASSWORD1=""
while [ $fail="true" ]; do
 echo -n " Password > "
 read LUKS_PASSWORD1
 echo "";

 for dev in "${!devs[@]}"; do
   echo "Opening ${devs[$dev]} to $dev"
   echo $LUKS_PASSWORD1 | sudo cryptsetup luksOpen $dev ${devs[$dev]} -d - &
 done;
 wait

 if [[ -e /dev/mapper/dev0 ]]; then
   [[ -e /dev/mapper/dev0 ]] && echo "true"
   ssh -i /home/user/.ssh/another-machine [email protected] -t 'play "/images/voices/Shuuten Douji/databasesunlocked.mp3"; wait; exit;';
   fail="false"
 else
   ssh -i /home/user/.ssh/another-machine [email protected] -t 'play "/images/voices/Shuuten Douji/that was incorrect, but please try again.mp3"; wait; exit;';
 fi
done

Antwort1

Versuchentest -e /dev/mapper/dev0 && run_some_command

Es wäre hilfreich, wenn Sie zeigen würden, was danach kam thenund warum es fehlgeschlagen ist.

Antwort2

Seltsamerweise funktionierte alles, obwohl ich mir vorher 10 Stunden lang den Kopf zerbrochen hatte, nachdem ich der IF-Anweisung eine zweite Klammer hinzugefügt hatte. Also ja, lol. Vielen Dank an alle!

verwandte Informationen