|
30.08.2017, 03:55 | #1 |
Member
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0 |
Кто дружит с командами 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:~# пример 2 Код:
root@OpenWrt:~# iwinfo wlan0 assoclist | wc -l 40 root@OpenWrt:~# Последний раз редактировалось Сергей В; 30.08.2017 в 04:33. |
30.08.2017, 10:10 | #2 | |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 |
Цитата:
Просмотеть подсказку: 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. |
|
31.08.2017, 13:56 | #3 | ||
Member
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0 |
Цитата:
Цитата:
|
||
31.08.2017, 14:07 | #4 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 |
Это то и вызывает ошибку синтаксиса, помните здесь используется ash - список команд ограничен и синтаксис специфичен
Мой пример работает в ash openwrt ... Код:
Присвойте значение: a=`wc -l` используйте переменную: expr $a / 4
__________________
Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 31.08.2017 в 14:11. |
31.08.2017, 15:57 | #5 | ||
Member
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0 |
Цитата:
Цитата:
Код:
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 |
мне надо в одну строчку или через фаил sh организовать
|
31.08.2017, 16:29 | #7 | |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 |
Цитата:
Выполнить sh /место_расположения/скрипт Мне кажется здесь что-то не так: expr $a / 4 Вы переменную делите на 4 ? Я глубоко не вникал, что вы пытаетесь получить, поэтому могу конечно ошибаться ...
__________________
Читаю ваши мысли по аватару ... |
|
01.09.2017, 21:43 | #8 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Так в одну строку проверь?
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. |
02.09.2017, 16:16 | #9 |
Senior Member
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 689 |
Код:
# var=$(iwinfo wlan0 assoclist | wc -l) && expr $var / 4 1 Код:
# expr $(iwinfo wlan0 assoclist | wc -l) / 4 1 $(printf "%d" $var) (где %d - digit, %s - string, %l - long, и т.д...) Последний раз редактировалось Dioptimizer; 02.09.2017 в 16:42. |
05.09.2017, 06:16 | #10 |
Member
Регистрация: 27.08.2015
Сообщений: 54
Вес репутации: 0 |
cпасибки, сработали обе команды)))
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|