¿Cómo detectar si “/dev/mapper/dev0” existe en Bash?

¿Cómo detectar si “/dev/mapper/dev0” existe en Bash?

Estoy intentando crear un software de descifrado para mi NAS, de modo que monte automáticamente todas las unidades y las descifre.

Pero necesito saber si sudo cryptsetup luksOpen /dev/blahblahblah dev0existe después de intentar abrirlo.

¿Cómo detecto eso en Bash? He intentado:

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

Entonces, pero eso no pareció funcionar. ¿Alguien tiene ideas?


Este es el código completo:

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

Respuesta1

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

Sería útil mostrar lo que vino después theny cómo falló.

Respuesta2

Por extraño que parezca, todo empezó a funcionar, incluso después de 10 horas de golpearme la cabeza contra la pared antes, cuando agregué un segundo paréntesis a la declaración IF... Así que sí, jajaja. ¡Gracias a todos!

información relacionada