
모든 드라이브를 자동으로 마운트하고 해독할 수 있도록 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
이상하게도 IF 문에 두 번째 괄호를 추가하기 전에 10시간 동안 벽에 머리를 부딪힌 후에도 모든 것이 작동하기 시작했습니다. 모두 감사합니다!