команты bash/awk
scion 30 июня, 2009 - 22:16
что-то я совсем торможу...
я хочу отправить сообщение двум подключ. пользователям. (на из tty)
собственно:
в идеале я бы хотел делать echo "test" > /dev/`w | awk '{print $2}' | tail -n 2`
но так незя. =) это я хочу показать что требуется. а то словами долго....
как мне это сделать в командой строке на bash.
»
- Для комментирования войдите или зарегистрируйтесь
народ?? ай! вы фто...
народ?? ай! вы фто...
неужели все гентушники на мышки перешли?
а wall не подойдет?
а wall не подойдет?
спасибо. согласен. wall для
спасибо. согласен. wall для этого подходит. единственно, он шлёт всем....
но всё же как это сделать стандартными утилитами? интересно... решил попытаться осилить unix-way =)
scion написал(а):спасибо.
Есть еще write, там можно юзера и tty задать.
Попробуй в цикле каждый tty
ага... про write тоже уже
ага... про write тоже уже прочитал...
"Попробуй в цикле каждый tty "
нет. каждый эт. не правильно.
а можно ли grep передать 2 или больше имени? или почему нельзя так?
pwd
/dev
ls | grep `w | awk '{print $2}' | tail -n 2`
grep: p2: No such file or directory
ыыы... рашисал... только
ыыы... написал... только самому стыдно...
for i in `w | awk '{print $2}' | tail -n 2`; do echo "test" > `ls | grep $i | grep tty;`; done
а если без привых рук? есть нормальные варианты?
У меня почти тоже самое: for
У меня почти тоже самое:
for tty in $(w | awk '{print $2}' | tail -n 2); do echo "test" >$tty; done
Кто поругает?
=) ну у тебя немного не
=) ну у тебя немного не правильно =)
у тебя переменная tty будет равна p1 а потом p2. и >$tty не приведёт к нужному результату....
т.к. команда w возвращает не ttyp1 и ttyp2 а только p1 и p2... это и был мой камень преткновения...
мне стадно за `ls | grep $i | grep tty;`
на благодаря `ls | grep $i | grep tty;` я получу на выходе ttyp1 и ttyp2 соотв...
Твой пример у меня не
Твой пример у меня не работает, а
for tty in $(who | awk '{print $2}'); do echo -e "test\n" >$tty; done
будучи выполнено от рута отправляет на все pts и tty
И откуда у тебя ttyp1 и ttyp2, что это? такого у меня нет...
Вот еще интересно, как вывод завершить чтоб сообшение не висело до нажатия return :) "\n" - не то.
ой =) мы оба правы =) но я
ой =) мы оба правы =)
но я больше не прав =)
я случайно не посмотрел и всё это тестировал на freebsd. а там pts/0 pts/1 .... называются pt0 и pt1.....а в папке /dev/ вообще ttypt0 и ttypt1... =)
"Вот еще интересно, как вывод завершить чтоб сообшение не висело до нажатия return :) "\n" - не то. " а зачем в этом и есть маза) зато не отмажется никто "типа не видел =))"
и всё ещё интересует вопрос можно ли в grep передавать несколько аргументов?
cat testfile
name1
name3
ls | grep `cat testfile`
ругается типа: grep: name3: Нет такого файла или каталога
можно без cat'a обойтись ls |
можно без cat'a обойтись
ls | grep -f testfile
O_o не знал что он может
O_o не знал что он может файлы кушать =) приятное удивление)
почему тогда grep `cat testfile` незя... =( обойтись то можно... просто хочется понять, что бы потом опять на эти грабли не наступить...
"почему тогда grep `cat
"почему тогда grep `cat testfile` незя" - ХЗ сам удивлен ведь КМК grep -F `cat testfile` должно рабротать...
офтоп: что кодишь среди ночи ?)
да. grep -F testfile
да. grep -F testfile работает... grep -F `cat testfile` нет...
"офтоп: что кодишь среди ночи ?) "
на самом деле уже ничего, всё на перле уже написал, а сейчас просто unix-way себе в мозг вшиваю =) хочу научится нормально командами пользоваться... а то часто стало не хватать...
.
ИМХО главная и программная дока по этой теме --- ABS.
:wq
--
Live free or die
а вот у меня такой вопрос к
а вот у меня такой вопрос к автору топика:
а зачем вообще писать сообщение методом " > /dev/tty" !? Вы уверены, что пользователи смогут его прочитать, особенно в том случае, есди у них в терминале выполняется какая-нибудь программа? Ведь ваше сообщение может тупо затеряться среди вывода )))
предлагаю почитать:
man write
man mesg
man talk
Ога :)
talk рулит!
Прообраз (прототиб) Jabber'а :)))
:wq
--
Live free or die
согласен, вы полностью правы.
согласен, вы полностью правы. это утилитки подходят намного лучше...
но вопрос был именно как это сделать средствами bash,awk... это так сказать больше для собственного развития....
еще хотелось бы
еще хотелось бы порекомендовать почитать:
man bash
Искусство программирования на языке сценариев командной оболочки
+ чтение и разбор уже написанных скриптов ;-)
+ man mail
Theli написал(а):+ чтение и
+1 за реверс инжиниринг ;)
Подсказал бы кто хорошую подборочку уанлайнеров :)
ага. fnx. этим и занимаюсь =)
ага. fnx. этим и занимаюсь =)
/
Есть мнение, что приведённая мной ранее ссылка на оргинал (последнее обновление датируется этим годом) будет куда лучше неопределённой степени достоверности и актуальности перевода.
:wq
--
Live free or die
спора нет. но приятно иметь
спора нет.
но приятно иметь выбор =)