LINUX.ORG.RU

Помогите выправить скрипт!


0

1

Господа Линуксники, нужна ваша помощь!

Задача: Написать скрипт, что бы при запуске мог проверить пользователь в «сети» (залогинился) или нет.

1 - Система проверяет, пользователь в сети или нет. - если в сети выдает надпись - «в сети» - конец программы

- если пользователь не найден, программа проверяет правильность написания, имя пользователя ОДНО слово. Если через пробел есть Буква или Цифра - система сообщает - Проверьте правильность написания имени - конец программы

- или если пользователь не найдет - то система ожидает (в моем случае сейчас в скрипте 10 сек) и выдает что «Пользователь в течении 10 секунд не залогинился» ожидает еще 5 сек и выдает - Пользователь такой то не в системе. - конец программы

Все что надо. У меня сейчас такой скрипт.

#!/bin/sh # # My Script # clear echo "......................................................." echo " To check user in online " echo "......................................................." echo " "

my_time=10 deftime=5

#if [ «$?» -eq 0 ]

in_net=`who | grep «$1» -c` if [ «$in_net» -ne 0 ]

then echo «\a\n User »$1" login in this system" else

if [ «$2» != q ] && [ «$2» != [0-9] ]

echo «Please, check the name and type correct...»

then

who | grep -w «$1»

echo «User $1 not logged in $my_time seconds» else

if [ «$#» -eq 3 ] && [ «$3» = q ] then sleep «$my_time» who | grep -w «$1»

else

if [ «$2» = q ] then who | grep -l «$1» sleep $deftime

else echo «User $1 do not logged in system»

exit 1 fi fi fi fi

Проверяю себя: - ОТЛИЧНО! ....................................................... To check user in online .......................................................

User vladimir login in this system vladimir@ubuntu:~$

Проверяю garry: - Пользователь не проходит валибность имени ....................................................... To check user in online ....................................................... Please, check the name and type correct... User garry not logged in 10 seconds vladimir@ubuntu:~$

Хотя просто должно выдать пользователь: - Пользователь в течении 10-ти сек в сеть не входил - Пользователь не в сети.

Проверяю garry 8 - garry k: ....................................................... To check user in online .......................................................

Please, check the name and type correct... User garry not logged in 10 seconds vladimir@ubuntu:~$

Тоже самое!!!!!

Голова кругом (((((((( помоги выправить код. Он по ходу нормально написан, только с ошибками, или недочетами с «не довведенными» командами....


Ответ на: комментарий от amazpyel

До последней ночи далеко... Это контрольная. - 30% к финальной оценке.

В 40-к лет сложновато учиться, но стараюсь. Посему и не стесняюсь просить помощи. ............................................................................ Господа, по возможности требуется реальная помощь, а не подобные высказывания. Благодарю.

Mc_Doc
() автор топика

if [ «$2» != q ] && [ «$2» != [0-9] ]

echo «Please, check the name and type correct...»

then

...

echo выполняется независимо от результата проверки?

ansky ★★★★★
()

Очевидно же, что в первом случае $2 пусто, а значит != q и != [0-9].

anonymous
()
Ответ на: комментарий от ansky

Проверка

Нет, если имя не правильное - тогда выполняется. Пример: vladimir 8, john q, ivan i и так далее

Если имя правильное например: vladimir , john , ivan и так далее - тогд опускается.

Mc_Doc
() автор топика
Ответ на: комментарий от bhfq

Bash

Я про бовал меня на Bash - тогда ниже выдает ошибку. Что то я перемудрил, и снова и снова возвращаюсь к своей же ошибке.

Mc_Doc
() автор топика

Если бы вы действительно были заинтересованы в получение результата, то вняли бы ответам, и привели это месиво в читабельный вид с помощью принятой на этом форуме разметки LORCode. Это всего два тега добавить.
К примеру, я бы и рад вам помочь, но тратить время на разбор ваших каракуль перспектива совершенно неинтересная.
Раз вы советам не вняли, то очевидно ваша цель не результат, а общение.

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.