Канал или пароль эха в команду RAR?

Я пытаюсь использовать RAR из командной строки в защищенном паролем архиве:

$ rar t spe_05_1.part13.rar

RAR 5.11   Copyright (c) 1993-2014 Alexander Roshal   27 Aug 2014
Trial version             Type RAR -? for help

Enter password (will not be echoed) for spe_05_1.part13.rar: 

RAR, кажется, не имеет смены пароля. Он предлагает способ установить пароль для архива, но я не могу найти способ передать пароль команде для тестирования (t команда) или извлечение (x команды):

$ rar | grep -i password
  hp[password]  Encrypt both file data and headers
  p[password]   Set password
  p-            Do not query password

Мне нужно автоматизировать ввод пароля (я должен попробовать несколько паролей), поэтому я пытаюсь использовать echo а также pipe:

$ echo diespe120 | rar t spe_05_1.part13.rar

RAR 5.11   Copyright (c) 1993-2014 Alexander Roshal   27 Aug 2014
Trial version             Type RAR -? for help

Enter password (will not be echoed) for spe_05_1.part13.rar: 

К сожалению, это побуждает меня.

Как автоматизировать ввод пароля для RAR в скрипте?


PASSWORDS=
for i in {100..150}
do
    pw=$(printf "diespe%03d" $i)
    PASSWORDS+="$pw " 
done

for PASSWORD in $PASSWORDS
do
    echo $PASSWORD | rar t spe_05_1.part13.rar
    if [ $? -eq 0 ]; then
        echo "Password is " $PASSWORD
        break
    fi
done

1 ответ

Решение

Как автоматизировать ввод пароля для RAR в скрипте?

Для автоматизации не используйте трубы. Вместо этого используйте переменную оболочки. Пытаться:

for PASSWORD in $PASSWORDS
do
    rar t -p"$PASSWORD" spe_05_1.part13.rar
    if [ $? -eq 0 ]; then
        echo "Password is '$PASSWORD'"
        break
    fi
done
Другие вопросы по тегам