alias
, export
, и eval
вся часть man builtin
на Mac OS X и, я принимаю в других системах BSD.
На OS X страницы справочника для встроенных команд все искажаются к встроенному, поэтому если я ввожу man alias
это остановится man builtin
. Проблема, хотя это man builtin
действительно не предоставляет информацию об отдельных командах. Поэтому для получения информации о псевдониме необходимо использовать help alias
.
В то время как я предпочитаю читать страницы справочника из терминальной подсказки при пропавших без вести в системе, я перейду к http://man.cx/, поскольку это довольно всесторонне.
Сделайте хвост-F звуковым сигналом однажды для каждой строки:
bel=`echo foo | tr -c -s '\007' '\007'`
tail -F file | sed "s/\$/$bel/"
Что касается использования оболочки для вычислений скользящего среднего значения вот сценарий удара, который отслеживает количество R0 и строк R1 в движущемся окне $windowsize размера. Отслеживающие переменные являются r0sum и r1sum.
windowsize=10
declare -ai isr0line isr1line r0sum r1sum i
for ((i=0; $i<$windowsize;i+=1)) ; do isr0line[$i]=0; isr1line[$i]=0; done
i=0
while read line
do
r0sum=$(($r0sum - ${isr0line[$i]}))
r1sum=$(($r1sum - ${isr1line[$i]}))
case "$line" in
R0*) isr0line[$i]=1; isr1line[$i]=0; ;;
R1*) isr1line[$i]=1; isr0line[$i]=0; ;;
*) isr0line[$i]=0; isr1line[$i]=0; ;;
esac
r0sum=$(($r0sum + ${isr0line[$i]}))
r1sum=$(($r1sum + ${isr1line[$i]}))
echo "R0 lines $r0sum R1 lines $r1sum"
i=$((($i + 1) % $windowsize))
done
Пропустите свой журнал через это:
awk '/^R1/ { r1++ } ; /^R0/ { r0++ } ; r0 > 0 { print r1/r0 }'
Это должно произвести "рабочее отношение" для каждой строки после первого R0.
И это для скользящего отношения (извините об этом, у меня было неверное представление о том, что "отношение" означало):
BEGIN { winsize=10; h=t=r0=r1=0 }
/^R0/ { r0++ }
/^R1/ { r1++ }
{ print r1 ":" r0 ; buf[h++] = $1 }
h - t >= winsize { r = buf[t]; delete buf[t++] }
r ~ /R1/ { r1-- }
r ~ /R0/ { r0-- }
Переменная winsize
содержит размер окна. regexes являются лишними здесь, но они сохраняют нажатия клавиш. Тесты, возможно, были $1 == "R0"
и r == "R0"
.
echo
иtr
в присвоенииbel
? В Bash (и некоторые другие оболочки) можно сделатьbel=$'\007'
. Другой метод:bel=$(echo -n '\007')
– Paused until further notice. 18.01.2012, 19:56