Очень классная подборка вопросов и ответов по программированию в Bash. Не нужно долго ковыряться в Advanced Bash Programming Guide ;)
Программирование
Ответы на ЧаВо по программированию в Bash
Вывод отладочной информации в скриптах shell
При отладке скрпитов sh часто очень удобно видеть какие команда выполняется в результате работы скрипта. Включить вывод отладочной информации в скрипте можно командой:
set -xЕсли скрипт большой и хочется выводить отладочную информацию только для проблемного куска кода, то отключить вывод можно командой:
set +x
Вывод пользовательских структур данных с помощью printf
Практически любой начинающий программист на C++ знает о такой возможности стандартных классов ввода/вывода C++ cin/cout как вывод/вывод пользовательских типов данных. Например если у вас есть ваш класс Widget то можно релизовать красивый вывод данных объекта этого класса:
Widget mywidget("mywidget");
cout << mywidget;
Откройте любой учебник по С++ на главе по перегрузке операторов и там доходчиво
все объясняют.
Но далеко не каждый профессиональный программист знает о примерно такой же возможности в C. В GNU libc имеется API для регистрации пользовательских форматов данных для printf.
В документации glibc описана эта замечательная возможность . Там же дан толковый пример .
Обзор ncurses, библиотеки для консольного ввода-вывода.
В документе описаны такие жизненно необходимые функции библиотеки консольного ввода/вывода ncurses как очистка экрана, перемещение курсора, изменение цветов фона и символов, отключение вывода символов при вводе и многое другое. Большая часть была взята из официальной документации остальная часть из личного опыта использования. Надеюсь многим начинающим программистам под Linux и не только будет полезна.
Что такое Maketext, почему устарел gettext, и как я использую это в perl
Есть замечательная статья
http://search.cpan.org/~petdance/Locale-Maketext-1.10/lib/Locale/Maketex...
которая знакомит нас с недостатками gettext, и возможностями maketext.
В perl я пользуюсь Locale::Maketext и очень доволен :)
p.s.: навеяно предыдущим материалом про php :)
p.p.s.: а почему в программировании только php? ;)
Алгоритм подсчета кол-ва бит в числе
смотрим функцию bit_set_cnt()
работает, но сам алгоримт неочевиден Ж:-)
/* подсчет кол-ва бит в числе */
#include <stdio.h>
int bit_set_cnt(unsigned long);
int main()
{
unsigned long i = 0xff;
while(i--)
printf ("i = %#x, set bit count = %d\n", i, bit_set_cnt(i));
return 0;
}
int bit_set_cnt(unsigned long i)
{
int cnt = 0;
while (i)
{
i &= i - 1;
cnt++;
}
return cnt;
}
как посчитать сумму чисел в выводе программы
довольно часто возникает необходимость посчитать сумму чисел в выводе какой-либо программы.
например, если сделать grep pppd /var/log/daemon.s | grep -Po '(?<=received )\d+', то можно получить что-то вроде
994 3301302 259550 4825 91793 103160 171276 58533 2563
это число байт, принятых по модему за несколько последних сессий. просуммировать такой вывод очень просто. достаточно создать скрипт, содержащий всего две строчки:
#!/bin/sh
awk '{print $1}' | grep -Po '^\d+([.,]\d+)?' | sed -n '{s/$/+/;s/,/./;H;}; ${g;s/\n//g;s/+$//g;p}' | bc
назвать его, скажем, sum, а потом сделать


Последние комментарии
42 минуты 27 секунд назад
1 час 26 минут назад
1 час 29 минут назад
1 час 54 минуты назад
2 часа 37 минут назад
3 часа 9 минут назад
3 часа 13 минут назад
22 часа 34 минуты назад
2 дня 1 час назад
2 дня 12 часов назад