Форум программистов, компьютерный форум, киберфорум
Ubuntu, Mint Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133

Shell скрипт для linux

15.11.2011, 23:12. Показов 5303. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просьба помочь с написанием на bash shell скрипта
Всем пользователям,не включенным в заданную первым параметром группу,посылает по почте сообщения о текущем времени и дате
Всем пользователям,включенным в заданную первым параметром группу, посылает по почте соообщения Happy NEW YEAR;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2011, 23:12
Ответы с готовыми решениями:

Скрипт в Linux
Как сделать скрипт, который в последствии будет запускаться и с помощью терминала: 1. перенаправить поток из /del в файл fdev (ls /dev...

Написать скрипт на Linux
Задание : Напишите скрипт, который записывает в файл некоторый текст. Если количество активных процессов больше 5, то выводит этот текст на...

Скрипт по атрибутам Linux
как сделать в скрипте, чтобы выводились файлы с доступом (атрибутом) "только для чтения" на экран из директории /dev ?

15
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.11.2011, 00:17
в /etc/group содержит инфа о пользователях группы
(нашёл программу groupmems, но у неё запуск разрешён только для рута - sudo groupmems -lg adm)
лучше написать функцию, которая по группе возвращает список пользователей, обрабатывая /etc/group
наверное, это самая сложная часть скрипта
1
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
16.11.2011, 07:08  [ТС]
getent passwd;a дальше?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.11.2011, 09:05
обычная grep подойдёт с regexp
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
16.11.2011, 14:05  [ТС]
Возник вопрос.При посылке письма знаю только как заполнить графу "кому"
mail "login" ,а дальше?если написать так как я предложил то появится в терминале cc: и тд.А как сделать чтобы и другие графы сами заполнялись.Пытался E0F,но почему-то не вышло((
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.11.2011, 01:07
Code
1
2
[guest@localhost ~]$ echo abcd | mail -s subj guest
[guest@localhost ~]$
другие поля вообще не заполняются по заданию
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
17.11.2011, 23:29  [ТС]
Я иду в правильном направлении?
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
echo "Введите группу которой,нужно отослать поздравления";
read group;
stringA=`cat /etc/group | grep $group;
        for j in 1 2 3
        do
                let a=`expr index "$stringA" :`;
                stringA=${stringA:$a};
        done
        while [$stringA]
        do
        let a=`expr index "$stringA" :`;
        echo `date`|mail -s date `expr substr $stringA 1 $a`;
        stringA=${stringA:$a};  
        done
./test.sh: строка 16: ошибка синтаксиса: неожиданный конец файла
И еще вопрос
echo `date`|mail -s date `expr substr $stringA 1 $a`;
в чем ошибка этой строки?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.11.2011, 00:11
группа передаётся в качестве параметра
она не вводится из потока ввода
Bash
1
gpr="$1"
поиск группы делаешь так:
Code
1
2
3
4
5
6
7
guest@localhost ~]$ grpline="$(grep -e "^adm:" /etc/group)"
[guest@localhost ~]$ echo $grpline
adm:x:4:root,adm,daemon
[guest@localhost ~]$ grpline="$(grep -e "^adm2:" /etc/group)"
[guest@localhost ~]$ echo $grpline
 
[guest@localhost ~]$
поиск всех пользователей:
Code
1
2
3
4
5
[guest@localhost ~]$ IFS=$'\n'
[guest@localhost ~]$ users=($(for line in $(cat /etc/passwd); do echo $line | cut -d':' -f1; done))
[guest@localhost ~]$ echo "${users[@]}"
root bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody avahi-autoipd dbus rpc rtkit abrt rpcuser nfsnobody tcpdump haldaemon ntp mysql saslauth avahi mailnull smmsp sshd smolt pulse guest guest1 usbmuxd
[guest@localhost ~]$
перед отправкой даты сначала подготовь её в переменной
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
20.11.2011, 17:15  [ТС]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  GNU nano 2.2.6               Файл: osis.sh                                    
 
#!/bin/bash
date=`date`;
echo "Введите группу которой нужно отослать дату";
read grp;
grp=^$grp:;
#ввели группу
users=($(for line in $(cat /etc/passwd); do echo $line | cut -d':' -f1;done))
#  echo  "${users[@]}";
#получили массив из всех юзеров
grpline="$(grep -e $grp  /etc/group)";
for usr in $(users[@]) do
if["$(grep -e :$usr $grpline"] then
echo $date|mail -s 'Текущая дата' $usr;
else 
echo "'Happy New Year'|mail -s 'Поздравление' $usr";
done
./osis.sh: строка 15: неожиданный EOF при поиске соответствующего `"'
./osis.sh: строка 17: ошибка синтаксиса: неожиданный конец файла
Почему??Я видимо вообще не понимаю bash
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.11.2011, 21:58
Bash
1
if["$(grep -e :$usr $grpline"] then
неправильно
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
23.11.2011, 22:02  [ТС]
Вообщем понял в чем проблема,походу неправильно написан цикл.Как можно грамотно сделать цикл со всеми данными из массива(А-ля foreach из php)??
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
23.11.2011, 22:07
while [условие]
do
done

а вообще:
http://www.opennet.ru/docs/RUS... ing_guide/
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
23.11.2011, 22:26  [ТС]
Спасибо за ссылку,но я уже довно пользуюсь этим материалом,а вопросов меньше не становится))
З.Ы
Code
1
2
3
4
5
6
7
8
for usr in ${users[@]}; do
#`echo $date|mail -s 'Текущая дата' $usr`;
if[[$("grep -e $usr $grpline")]]
then
`echo $date|mail -s 'Текущая дата' $usr`;
else
        `echo 'Happy New Year'|mail -s 'Поздравление' $usr`
fi;
Ошибка

./osis.sh: строка 15: ошибка синтаксиса около неожиданной лексемы `then'
./osis.sh: строка 15: `then'
Лол?Реально не могу понять в чем здесь ошибка,все проверил,прочитал несколько мануалов и все ровно не понимаю.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
23.11.2011, 22:37
а по две пары скобок на кой?
0
19 / 17 / 6
Регистрация: 15.11.2011
Сообщений: 133
23.11.2011, 22:40  [ТС]
Просто пробывал все что можно,в мануале написано что двойные скобки меньше ошибок выдают.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
24.11.2011, 01:20
там вообще скобки не нужны, grep и так возвращает истину или ложь
Code
1
2
3
4
5
6
7
[guest@localhost ~]$ s=abcd
[guest@localhost ~]$ if echo $s | grep -q bc; then echo found; else echo not found; fi
found
[guest@localhost ~]$ s=defg
[guest@localhost ~]$ if echo $s | grep -q bc; then echo found; else echo not found; fi
not found
[guest@localhost ~]$
Цитата Сообщение от Дажьбог
Реально не могу понять в чем здесь ошибка
не знаешь, как работают скобки и что должно в них быть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2011, 01:20
Помогаю со студенческими работами здесь

Простой скрипт в Linux Mint
Добрый день! Извиняюсь если пишу вопрос не в той теме,возможно он больше к программистам чем к линуксоведам:) Помогите пожалйста...

Разметка в Linux жесткого диска для дуалбут MS-DOS и Linux
У меня, значит, на стационарном старичке стоит жесткий на 2 Тб. Win XP такие цифры не знает, а вот видит ли такой обьем linux? ...

Что лучше для сервера сайта Arch Linux или Linux Debian ?
Подскажите пожайлуста что лучше для сервера сайта Arch Linux или Linux Debian ?

Какую версию Linux лучше всего выбрать для начинающего юзера в Linux? И где скачать?
Хотелось бы освоится в Линуксе, какую лучше всего выбрать версию этой ОС и где можно скачать что бы не было вирусов и тд? НАчинающий юзер...

Linux Mint — Чем она отличается от других Linux/Unix-подобных и для чего предназначена в первую очередь,
какие +/- и фичи имеет? так же можно какие то интересные факты...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru