49 / 2 / 0
Регистрация: 13.02.2020
Сообщений: 448
1

Простой скрипт на поиск пользователя в системе

13.03.2022, 18:16. Показов 1279. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, подскажите, пожалуйста, в чём моя ошибка?? Проблема в той части, где пользователь вводит не зарегистрированное имя и хочет завершить программу.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
 
while true; do
   echo "Введите свое имя:"
   read user_name
   until who|grep -q "$user_name";
   do
       echo "Пользователь не найден"
       echo "Хотите продолжить? (y/n)"
       read answer
       if [ $answer = Y ] || [ $answer = y ]; then
           read -p "Введите свое имя:" user_name
       else
           exit 255
       fi
   done
 
   read -p "введите имя каталога:" dir
   ...
   echo "Хотите продолжить? (y/n)"
   read fr
   if [ $fr = n ] || [ $fr = N ]; then
      break
   fi
done
 
exit 0
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2022, 18:16
Ответы с готовыми решениями:

Напишите скрипт shell, проверяющий наличие в текущий момент времени некоего пользователя в вашей системе
Напишите скрипт shell, проверяющий наличие в текущий момент времени некоего пользователя в вашей...

Perl скрипт - поиск пользователя в AD
Задача - в Active Directory найти учетки пользователей у которых через N дней кончиться срок...

Сложение или вычитание по выбору пользователя чисел,в двоичной системе и десятичной системе
Пожалуйста помогите люди добрые.Нужно написать программу которая будет выполнять сложение или...

Создание простой фигуры в трёхмерной системе координат
Необходимо нарисовать типа трехмерную фигуру, без opengl. Нашел похожее тут...

5
49 / 2 / 0
Регистрация: 13.02.2020
Сообщений: 448
13.03.2022, 19:40  [ТС] 2
Вот такую ошибку выдает
Миниатюры
Простой скрипт на поиск пользователя в системе  
0
353 / 165 / 61
Регистрация: 01.06.2015
Сообщений: 656
14.03.2022, 22:05 3
Лучший ответ Сообщение было отмечено OlyaAnnet как решение

Решение

Попробуйте так:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
 
while true; do
   echo "Введите свое имя:"
   read user_name
   until who|grep -q "$user_name";
   do
       echo "Пользователь не найден"
       echo "Хотите продолжить? (y/n)"
       read answer
       if [ "$answer" = "Y" ] || [ "$answer" = "y" ]; then
           read -p "Введите свое имя:" user_name
       else
           exit 255
       fi
   done
 
   read -p "введите имя каталога:" dir
   ...
   echo "Хотите продолжить? (y/n)"
   read fr
   if [ "$fr" = "n" ] || [ "$fr" = "N" ]; then
      break
   fi
done
 
exit 0
В скрипте переменная заменяется значением и когда вы вводите пустое значение получается (строка 11)
Bash
1
if [  = Y ] || [  = y ]; then
что и не нравится интерпретатору, но если взять в кавычки, то получится вполне нормальное выражение
Bash
1
if [ "" = "Y" ] || [ "" = "y" ]; then
1
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
15.03.2022, 10:53 4
ixoyz, Чё пробовать? Вот эта строчка вызывает ошибку:
Цитата Сообщение от OlyaAnnet Посмотреть сообщение
Код
19    ...
0
353 / 165 / 61
Регистрация: 01.06.2015
Сообщений: 656
15.03.2022, 20:23 5
У вас ошибка выдаётся строкой окончания цикла.
Текст ошибки [: =: ожидается унарный оператор, вызвана она тем, что когда переменная $answer в условии [ $answer = Y ] и им подобным не содержит значение, bash не понимает с чем сравнивать правую часть т.к. он заменяет переменную на значение и получается [ = Y ].
Если вы во всех условиях экранируете переменную и значения, например так: [ "$answer" = "Y" ], то эта проблема уйдёт, т.к. при пустом значении переменной, код получится не [ = Y ], а [ "" = "Y" ] и bash поймёт что с чем сравнить.
1
49 / 2 / 0
Регистрация: 13.02.2020
Сообщений: 448
18.03.2022, 07:53  [ТС] 6
nezabudka, это я просто обозначила, что в промежутке у меня там ещё есть код. Так как он не имеет отношения к проблеме, то я решила его не вставлять

Добавлено через 5 минут
ixoyz, спасибо Вам большое) всё получилось
0
18.03.2022, 07:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2022, 07:53
Помогаю со студенческими работами здесь

PHP скрипт -> Json -> выбор пользователя -> AJAX -> первоначальный PHP скрипт
Доброго времени суток! Я новичек вэб программировании, так что прошу строго не судить(в гугле...

Последние действия пользователя в системе.
Доброго времени суток! Подскажите, где в ХР можно посмотреть последние действия пользователя, ...

Определить группу пользователя в системе
Доброе время суток. Дорогие Форумчане, подскажите пожалуйста как узнать входил ли пользователь в...

Простой скрипт
Доброго времени суток! Вот всеми известный сайт http://www.donothingfor2minutes.com/ , так мне вот...

Простой скрипт
Изучаю JQUERY. Что-то понять не могу как сделать. Задача самоучителя: Есть таблица - ...

простой скрипт
помогите пожалуйста) нужно написать скрипт, который бы проверял правильность ввода ФИО сделала...

Простой скрипт
Добрый день ребята. Задался вопросом. Каким методом можно записывать информацию в компонент из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru