Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2017, 03:55   #1
Сергей В
Member
 
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0
Сергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to all
Unhappy Кто дружит с командами unix?

ребят по скольку в некоторых роутерах с openwrt не работает команда

решил пойти по другому пути в результате уперся в стену(

а именно

начал сканировать
iwinfo wlan0 assoclist

мне показали все текущие подключения по wi-fi
решил подсчитать строки

iwinfo wlan0 assoclist | wc -l

выдало 20

зная по выводе командой iwinfo wlan0 assoclist формируиться "таблица" с 4 строками информацией решил прибегнуть к команде expr b и поделить полученное значение из команды iwinfo wlan0 assoclist | wc -l на 4.

в итоги что то такого написл
iwinfo wlan0 assoclist | wc -l |expr $1 / 4

но при выполнение вылетает ошибка
Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | wc -l  |expr $1 / 4
expr: syntax error
root@OpenWrt:~#
прошу ткнуть носом где ошибка у меня=(

пример1
Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | wc -l
20
root@OpenWrt:~#
20 пропускаем через expr деленное на 4 и получаем что у нас 5 клиентов

пример 2
Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | wc -l
40
root@OpenWrt:~#
40 через expr / 4 получаем 10, означающие что 10 клиетов подлючены

Последний раз редактировалось Сергей В; 30.08.2017 в 04:33.
Сергей В вне форума   Ответить с цитированием
Старый 30.08.2017, 10:10   #2
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию

Цитата:
Сообщение от Сергей В Посмотреть сообщение
но при выполнение вылетает ошибка
Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | wc -l  |expr $1 / 4
expr: syntax error
root@OpenWrt:~#
Ошибка синтаксиса, отсутсвует пробел wc -l | expr $1 / 4
Просмотеть подсказку:
expr -h или expr -help
$ - это обозначение переменной(я так понимаю 1/4 от переменной, которой нет).
Чтобы ее использовать, нужно присвоить переменной значение, например переменная - $p:
Код:
p=`pidof arecord`; kill -9 $p
Присвоили значение:
p=`pidof arecord`
Используем переменную:
kill -9 $p
__________________
Читаю ваши мысли по аватару ...

Последний раз редактировалось sunny; 30.08.2017 в 15:08.
sunny вне форума   Ответить с цитированием
Старый 31.08.2017, 13:56   #3
Сергей В
Member
 
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0
Сергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to all
По умолчанию

Цитата:
Сообщение от sunny Посмотреть сообщение
Ошибка синтаксиса, отсутсвует пробел wc -l | expr $1 / 4
Просмотеть подсказку:
expr -h или expr -help
$ - это обозначение переменной(я так понимаю 1/4 от переменной, которой нет).
Чтобы ее использовать, нужно присвоить переменной значение, например переменная - $p:
Код:
p=`pidof arecord`; kill -9 $p
Присвоили значение:
p=`pidof arecord`
Используем переменную:
kill -9 $p
$1 - берется значения от вывода предыдущий командой iwinfo
Цитата:
wlan0 assoclist | wc -l
Сергей В вне форума   Ответить с цитированием
Старый 31.08.2017, 14:07   #4
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию

Цитата:
Сообщение от Сергей В Посмотреть сообщение
$1 - берется значения от вывода предыдущий командой iwinfo
Это то и вызывает ошибку синтаксиса, помните здесь используется ash - список команд ограничен и синтаксис специфичен
Мой пример работает в ash openwrt ...
Код:
Присвойте значение:
a=`wc -l`
используйте переменную:
expr $a / 4
Может заработает
__________________
Читаю ваши мысли по аватару ...

Последний раз редактировалось sunny; 31.08.2017 в 14:11.
sunny вне форума   Ответить с цитированием
Старый 31.08.2017, 15:57   #5
Сергей В
Member
 
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0
Сергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to all
Talking

Цитата:
Сообщение от sunny Посмотреть сообщение
Это то и вызывает ошибку синтаксиса, помните здесь используется ash - список команд ограничен и синтаксис специфичен
Мой пример работает в ash openwrt ...
Код:
Присвойте значение:
a=`wc -l`
используйте переменную:
expr $a / 4
Может заработает
то есть так пробывать?
Цитата:
iwinfo wlan0 assoclist | a=`wc -l` | expr $a / 4

Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | a=`wc -l` | expr $a / 4
expr: syntax error
root@OpenWrt:~#
Сергей В вне форума   Ответить с цитированием
Старый 31.08.2017, 16:00   #6
Сергей В
Member
 
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0
Сергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to all
По умолчанию

мне надо в одну строчку или через фаил sh организовать
Сергей В вне форума   Ответить с цитированием
Старый 31.08.2017, 16:29   #7
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию

Цитата:
через фаил sh организовать
Попробуйте написать скрипт - все что вводите в текстовый файл..
Выполнить sh /место_расположения/скрипт
Мне кажется здесь что-то не так: expr $a / 4
Вы переменную делите на 4 ?
Я глубоко не вникал, что вы пытаетесь получить, поэтому могу конечно ошибаться ...
__________________
Читаю ваши мысли по аватару ...
sunny вне форума   Ответить с цитированием
Старый 01.09.2017, 21:43   #8
melsem
Moderator
 
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599
melsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud of
По умолчанию

Так в одну строку проверь?
a=`iwinfo wlan0 assoclist | wc -l` && expr $a / 4
или так
iwinfo wlan0 assoclist | a=`wc -l` && expr $a / 4

У меня на LEDE iwinfo ничего не выводит.

Развернуть для просмотра

root@LEDE:~# iwinfo
-ash: iwinfo: not found
root@LEDE:~#
[свернуть]

Последний раз редактировалось melsem; 01.09.2017 в 22:06.
melsem вне форума   Ответить с цитированием
Старый 02.09.2017, 16:16   #9
Dioptimizer
Senior Member
 
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 689
Dioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond repute
По умолчанию

Код:
# var=$(iwinfo wlan0 assoclist | wc -l) && expr $var / 4
1
Или сразу без переменной:
Код:
# expr $(iwinfo wlan0 assoclist | wc -l) / 4
1
Если будут проблемы с приведением к типу используйте printf:
$(printf "%d" $var)
(где %d - digit, %s - string, %l - long, и т.д...)

Последний раз редактировалось Dioptimizer; 02.09.2017 в 16:42.
Dioptimizer вне форума   Ответить с цитированием
Старый 05.09.2017, 06:16   #10
Сергей В
Member
 
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0
Сергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to allСергей В is a name known to all
Smile

Цитата:
Сообщение от melsem Посмотреть сообщение
Так в одну строку проверь?
a=`iwinfo wlan0 assoclist | wc -l` && expr $a / 4
или так
iwinfo wlan0 assoclist | a=`wc -l` && expr $a / 4

У меня на LEDE iwinfo ничего не выводит.

Развернуть для просмотра

root@LEDE:~# iwinfo
-ash: iwinfo: not found
root@LEDE:~#
[свернуть]
cпасибки, сработали обе команды)))
Сергей В вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:26. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика