Суббота, 23.11.2024
TiM
Меню сайта
Категории раздела
Мои статьи [9]
1С Бухгалтерия [1]
Arduino / ATMEGA [10]
ESP8266 [1]
OrangePi PC и Raspberry Pi 2 Model B V1.1 [4]
Шаговые двигатели [1]
PHPProBid [0]
CMS DLE (DataLife Engine) [0]
CMS Joomla [13]
SugarCRM [5]
Базы данных [5]
PHP скрипты [16]
Bash и скрипты [27]
IP АТС Elastix / Asterisk [12]
CentOS [6]
Debian [8]
Lubuntu / LinuxMINT [29]
Windows [28]
Умный дом [1]
Сервера [16]
Natural Selection [1]
System Shock 2 [1]
Форма входа
Главная » Статьи » 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".

Категория: Bash и скрипты | Добавил: Timofey (10.03.2016)
Просмотров: 1368
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
YANDEX
Яндекс.Метрика
Сайты
  • Харьковский Юридический Альянс
  • Оцифровка кинопленки
  • TiM ©
    Харьков 2024