Что-то не так с моим сценарием sh не знаю почему? - PullRequest
0 голосов
/ 29 сентября 2010

Я написал этот сценарий sh здесь. Предполагается, что он предлагает пользователю ввести старый пароль, а затем проверяет пароль с помощью пароля в файле «PASSWORD.txt», если он не завершится, в противном случае, если он совпадет, он попросит пользователя введите новый пароль дважды. Затем он проверяет, совпадают ли два новых пароля, если не выйдет, иначе я должен поместить введенные пользователем данные и заменить текст в файле "PASSWORD.txt".

Затем, когда я запустил файл, где он спрашивает у меня старый пароль, я получил эту ошибку:

Please Enter teh old passsword:
test
cat: .txt: No such file or directory
The password doesn't match![root@guzzy ~]#

Дело в том, что введенный мною ввод не совпадает, хотя я набрал правильный старый пароль.

Вот рукопись ниже:

#!/bin/sh

clear

echo -e "Please Enter the old password:"

read old

if [ "$old" != "$(cat $PASSWORD.txt)" ]

    then

        echo -n "The password doesn't match!"

        exit

    else

        echo -n "The old password matches!"

        echo -n "Please Enter New password:"

        read new1

        echo -n "Please Enter New password again:"

        read new2

        if [ "$new1" != "$new2" ]

            then

                echo -n "The new passwords don't match!"

                exit

            else

                $new1 >> PASSWORD.txt

                echo -n "The new password has been saved!"

        fi
fi

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

Ответы [ 3 ]

2 голосов
/ 29 сентября 2010

Эта строка:

$new1 >> PASSWORD.txt

должна выглядеть следующим образом:

echo "$new1" > PASSWORD.txt

Вам необходимо echo значение в файле.Я предполагаю, что вы не хотите сохранять старые ценности.Чтобы иметь возможность снова запустить скрипт в том же файле, вам, вероятно, следует перезаписать (>), а не добавить (>>).

1 голос
/ 29 сентября 2010

Кажется, вы имели в виду

if [ "$old" != "$(cat PASSWORD.txt)" ]

без знака доллара.

1 голос
/ 29 сентября 2010

Вы не установили переменную PASSWORD где-либо.Если ваш файл называется «PASSWORD.txt», удалите перед ним $.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...