Как определить, существует ли «/dev/mapper/dev0» в Bash?

Как определить, существует ли «/dev/mapper/dev0» в Bash?

Я пытаюсь создать программное обеспечение для дешифрования для моего NAS, чтобы оно автоматически монтировало все диски и дешифровывало их.

Но мне нужно знать, sudo cryptsetup luksOpen /dev/blahblahblah dev0существует ли он после попытки его открыть.

Как это обнаружить в Bash? Я пробовал:

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

Но это, похоже, не сработало. Есть у кого-нибудь идеи?


Вот весь код:

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

решение1

Пытатьсяtest -e /dev/mapper/dev0 && run_some_command

Было бы полезно, если бы вы показали, что было после thenи почему это не удалось.

решение2

Как ни странно, все заработало, даже после 10 часов биения головой о стену, когда я добавил вторую скобку в оператор IF.. Так что да, лол. Спасибо всем!

Связанный контент