скрипт на shell

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Styke
Сообщения: 9

скрипт на shell

Сообщение Styke »

Помогите написать небольшой скрипт, который по прошествию определенного времени (например 2 минуты) выполнял бы определенную программу (xrefresh в данном случае). Я бы мог это реализовать в виндовом дельфи, но не знаю как это сделать средствами shell...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: скрипт на shell

Сообщение sash-kan »

если просто через две минуты, воспользуйся at, если каждые две минуты, тогда cron.
руководств, даже русскоязычных, я думаю, валом.
главная трудность будет в том, что тебе нужно выполнять программу, взаимодействующую с x-сервером.
поэтому, может быть, имеет смысл воспользоваться какой-нибудь x-овой напоминалкой?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
valeri_ufo
Бывший модератор
Сообщения: 274
Статус: Everywhere, yet nowhere

Re: скрипт на shell

Сообщение valeri_ufo »

sleep 2m; xrefresh
а если постоянно то while true; do sleep 2m; xrefresh; done
Спасибо сказали:
Styke
Сообщения: 9

Re: скрипт на shell

Сообщение Styke »

valeri_ufo писал(а):
22.12.2005 20:03
sleep 2m; xrefresh
а если постоянно то while true; do sleep 2m; xrefresh; done

спасибо! :) Всё работает.
а нельзя ли сделать так, чтобы тот же xrefresh запускался после закрытия или сворачивания какого-либо окна?
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: скрипт на shell

Сообщение Shura »

Если КДЕ, то лезь в Control Center. Пункт Sound & Multimedia -> System Notifications. Выбираешь событие, потом кнопка "More options" - там есть пункт "Execute a program"
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: скрипт на shell

Сообщение TuLiss »

а я вот нехочу что бы кто то за меня сделал. Люблю сам =) Но вот знаний нет, посему спрошу.

как решить небольшую задачу.

есть

inpserver="//music"
fndShares="smbclient -N -L $inpserver | grep Disk > shares"

eval fndShares

собствено, как бы сделать, что бы из файла shares

колонки

Domain=[CLN.RU] OS=[Unix] Server=[Samba 2.2.7a]
Domain=[CLN.RU] OS=[Unix] Server=[Samba 2.2.7a]
Music Disk music
Stories Disk stories
Drugoe Disk drugoe
Clips Disk clips
upload$ Disk yxo
ADMIN$ Disk IPC Service (yxo.cln.ru)

первые две вообще не нужны
А считовались первые слова, и формировались в список
Music,Stories Итд
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: скрипт на shell

Сообщение sash-kan »

Код: Выделить всё

fndShares="smbclient -N -L $inpserver | sed -ne '/Disk/s/^\([^ ]*\).*/\1/p' > shares"

или

Код: Выделить всё

fndShares="smbclient -N -L $inpserver | grep Disk | awk '{print $1}' > shares"
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: скрипт на shell

Сообщение TuLiss »

sash-kan писал(а):
05.01.2006 20:32

Код: Выделить всё

fndShares="smbclient -N -L $inpserver | sed -ne '/Disk/s/^\([^ ]*\).*/\1/p' > shares"



| egrep -v '\\$'

так как не удалял знак $ )+

Кстати а можно эти значение (которые переписались в файл) внести как переменную, что бы добавить их другой программе на выполнение.


mkdir `cat shares`

кстати подскажите как правильно заносить такие команды в переменные?
те что бы учитавались ` > | итд правильно

Да и не соображу как правилько указать mkdir? чтобы она создавала паки в определенной директории? а не в той откуда производится запуск
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: скрипт на shell

Сообщение muhas »

(TuLiss @ Jan 6 2006, в 00:59) писал(а):Да и не соображу как правилько указать mkdir? чтобы она создавала паки в определенной директории? а не в той откуда производится запуск
Чё-то ты клинишь, не судьба что ли пути не относительные, а полные прописывать?
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: скрипт на shell

Сообщение TuLiss »

muhas писал(а):
06.01.2006 13:01
Чё-то ты клинишь, не судьба что ли пути не относительные, а полные прописывать?


из за незнаний и туплю =)

mnt="/mnt/tmp"
crdir="/mkdir -p $mnt `cat shares`

И вот это не получается =)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
gruz0
Сообщения: 16

Re: скрипт на shell

Сообщение gruz0 »

TuLiss писал(а):
06.01.2006 14:19
mnt="/mnt/tmp"
crdir="/mkdir -p $mnt `cat shares`

И вот это не получается =)

поверь, не получится ;)
тогда уж
crdir="/bin/mkdir -p $mnt `cat shares`
Я знаю, что я делаю и я в себе уверен больше, чем вы думаете
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: скрипт на shell

Сообщение TuLiss »

gruz0 писал(а):
06.01.2006 16:45
TuLiss писал(а):
06.01.2006 14:19

mnt="/mnt/tmp"
crdir="/mkdir -p $mnt `cat shares`

И вот это не получается =)

поверь, не получится ;)
тогда уж
crdir="/bin/mkdir -p $mnt `cat shares`



дело не в том, что он не запускает mkdir, дело в том, что он создает папки которые указанны в shares , откуда был запущен скрипт, те игнорирует переменную $mnt
При чем если указать, /mnt/tmp/`cat shares` То результат то же
то же самое если делать в консоли. Собственно как заставить создовать папки которые казанны в shares в другой деректории, относительно запуска скрипта?
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: скрипт на shell

Сообщение muhas »

Тады надо что бы либо `cat shares` выдовал полные пути папок, либо до того как ты хочешь создать папки написать cd /нужная папка (перейти в нужную папку, это несомненно удобно), а потом (после создания папок) вернуться в нужную директорию.

Насколько я могу понять, в твоём примере ( /mnt/tmp/`cat shares`) будет одна папка создана там где надо а остальные в папке со скриптом?
Если так понял, то можно использовать не `cat shares`, а поизголяться с конвеерами, что бы были полные пути
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: скрипт на shell

Сообщение Portnov »

bla-bla-bla | sed "s_\(.*\)_$mnt\1_" > shares

После этого в файле shares будет список полных путей, и mkdir `cat shares` сделает чо надо.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: скрипт на shell

Сообщение TuLiss »

Portnov писал(а):
06.01.2006 21:43
bla-bla-bla | sed "s_\(.*\)_$mnt\1_" > shares

После этого в файле shares будет список полных путей, и mkdir `cat shares` сделает чо надо.



спасибо. Не догадался бы. А то я уже конвеярами наваял, а тут все проще можно=)

А вообще народ, можно задовать глупые вопросы =), просто пытаюсь изучить shell путем создание скрипта, для себя, а то по примерам я что то плохо орентируюсь в книгах.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали: