2010-09-21 3 views
0

Я пытаюсь написать кодировку sh, чтобы пользователь мог аутентифицировать пароль, сравнивая ввод пользователя с первыми 32 символами файла. Таким образом, в принципе, если пароль правильный, он запустил TaskMenu.csh, если его ошибка закончится.Получение пользователя для аутентификации пароля

#!/bin/sh 
clear 
echo -e " Please Enter the Password to access the TaskMenu:" 
read PW 
if (! -e "$PASSWORD.txt") 
then 
     echo -n "The file doesn't exist" 
     echo kil 
     exit 
else 
     ...(i have no clue what to do)... 

Пожалуйста, помогите

+0

Вы упомянули файл csh, ваш 'if' находится в стиле, используемом csh, ваш shebang говорит sh и ваши теги вопроса включают [bash]. Что он? –

+0

Почему 32-символьный максимум? Это довольно долго, но я не вижу никаких веских оснований для введения такого предела. –

ответ

1
if [ "$PW" = $(cat "$PASSWORD.txt | head -c 32) ] 
then 
    ./TaskMenu.csh 
else 
    echo Authentication failed. 
    exit 3 
fi 

Запуск с bash -x или добавить set -x к верхней части источника, чтобы увидеть, что строки передается вокруг.

+0

Не факт, что вы можете запустить это с помощью bash -x (Скорее всего, tcsh -x, но в основном одно и то же) и получить имя файла, содержащего пароль, полностью аннулирует этот метод для аутентификации пароля? –

+0

ohhh ok спасибо, что это то, что мне нужно спасибо! ;) – GuzzyD

+0

@reemrevnivek: Это отдельная проблема. –

Смежные вопросы