LINUX.ORG.RU

Ответ на: комментарий от alozovskoy

да не сортировать. Сохранять предыдущее значение и если оно больше предыдущего - то выводить. Т.е запустить команду и вывести максимальное значение вывода этой команды

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от bryak

Объясни почеловечески, что ты хочешь сделать?

v9lij ★★★★★
()

Отсортируй в обратном порядке и возьми первый элемент.

echo -e "1\n3\n2" | sort -r | head -n 1

anonymous
()

так?

#!/bin/один_ЭС_интерпретатор
$переменная = 0
пока (выполняется условие) делать
$временная_переменная = «команда | wc -l»
if $временная_переменная > $переменная then $переменная = $временная_переменная
пока_перестать_делать;
echo $переменная\n

mos ★★☆☆☆
()
Ответ на: комментарий от bryak

Так тебе в любом случае циклом несколько команд надо вызвать, либо вызывать через &&\; сразу конструкцию с wc -l и тогда использовать sort - будет однострочник.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy
res=0
while true
do
	x=$(some_cmd | wc -l)
	sleep 1
	if [[ $res < $x ]]; then
		res=$x
	fi
	echo $res;
done

Можно как-то это сделать в виде однострочника, чтобы вместо while была watch ?

bryak ★★★★
() автор топика
Ответ на: комментарий от bryak

Зачем тебе sleep?

Без watch

res=0; while true; do x=$(ls | wc -l); sleep 1; if [[ $res -lt $x ]]; then res=$x; fi; clear; echo $res; done

С watch

res=0; watch 'x=$(ls | wc -l); sleep 1; if [[ $res -lt $x ]]; then res=$x; fi; echo $res'

Difrex ★★★★
()
Ответ на: комментарий от bryak

В порядке извращения и махрового юниксвея:

watch 'read max </tmp/max; { echo $max; ps -e | wc -l; } | sort -nr | head -n1 | tee /tmp/max'
unterwulf
()
Ответ на: комментарий от bryak

я думал, может есть какое-то элегантное решение для однострочников)

напиши цикл в одну строку, никто не запрещает :)

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.