» » Всякие полезности при работе с bash

Всякие полезности при работе с bash


Всякие полезности при работе с bash


В данной статье я бы хотел собрать различные хитрости и полезности при работе со скриптами bash. Помощь по синтаксису bash вы можете найти в другой моей статье: "Краткий справочник по синтаксису bash"
Ну а тут я буду выкладывать куски готового кода, который поможет решить ту или иную задачу.

На данный момент есть решения для следующих задач:
1. Проверка на наличие активного процесса по имени
2. Получение текущей даты и её форматирование
3. Вывод отличий между двумя текстовыми файлами
4. Время выполнения скрипта
5. Проверка доступности хоста при помощи ping
6. Формирование двумерного массива

1. Проверка на наличие активного процесса по имени
ProcName="openvpn"
Check=`pidof $ProcName`
if [ "$Check" = "" ]
then
# Процесс не запущен. Выполняем необходимые действия
else
# Процесс запущен. Выполняем необходимые действия
fi


2. Получение текущей даты и её форматирование
date=`date +%Y%m%d-%H%M%S`

Получим: yyyymmdd-hhmmss

3. Вывод отличий между двумя текстовыми файлами
grep -f ./file1.txt -vFx ./file2.txt


4. Время выполнения скрипта
START=$(date +%s)
# do something

## <your script here> ###

END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"


5. Проверка доступности хоста при помощи ping
count=$(ping -c 1 $PingHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 1 ]
then
echo "Host '$PingHost' available."
else
echo "Host '$PingHost' unreachable."
fi


6. Формирование двумерного массива
Bash по-умолчанию не умеет работать с двумерными массивами.
Давайте научим:
# Задаем массив
ARRAY=(
"data1-1" "data1-2"
"data2-1" "data2-2"
)
# Считаем кол-во элементов в массиве и делим их на 2
n=$(( ${#SERVERS_VPN[@]}/2 ))
i=0
# Запускаем цикл while
while [ $i -lt $n ]
do
echo "1 элемент: ${ARRAY[$((2*$i))]}"
echo "2 элемент: ${ARRAY[$((2*$i+1))]}"
done

Вот и все. Для того, чтобы создать трехмерный массив, необходимо везде заменить "2" на "3".

Источники:
iamroot.ru: Мелочи. Grep вывод отличий 2-х конфигов Linux
iamroot.ru: Bash Время выполнения скрипта скачать dle 10.2 Форекс опционы

Внимание! Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.