Linux: программирование в bash (полезные скрипты, функции, условия, циклы, case)

Пользовательский ввод

Bash read user input

read -p "Enter var: " var
echo "$varv"
Условия

Сравнение строк.

Нулевая строка.

if [[ $var == "" ]]; then
echo "choto"
fi

Сравнение численных в bash:

https://stackoverflow.com/questions/18668556/comparing-numbers-in-bash
if (( $delay > 900 )); then
echo "lol"
fi

if [[ "$delay" -gt "900" ]]; then
echo "lol"
fi
CASE

Пример из configure netmap (автоселект ОС):

#!


Читать дальше

32-битные счетчики sysUpTime

C 497 дня (4-миллиарда timeticks) обновляется значение Uptime при опросе sysUpTime (DISMAN-EVENT-MIB::sysUpTimeInstance или .1.3.6.1.6.3.10.2.1.3). Такое поведение аналогично на всех устройствах, включая Cisco. 64-битного счетчика timeticks (1/100 секунды), по аналогии с Counter64,  пока не существует. Для Cisco, Alcatel и многих других устройств (даже ZTE, но не D-Link) есть альтернатива – опрашивать количество секунд со старта (не epoch seconds) (SNMP-FRAMEWORK-MIB::snmpEngineTime или .1.3.6.1.2.1.1.3.0) и конвертировать во время самостоятельно скриптом.

Читать дальше

xargs: простая многопоточность в bash

Простая многопоточность в bash: делаем скрипт для одной сети/одного IP (с любым из скнов представленных ниже, например), далее делаем список сетей/IP, открываем его через cat и натравляем скрипт через xargs.

cat nets | xargs -n 1 -I ^ -P 10 bin/test ^

Читать дальше