На данный момент есть решения для следующих задач:
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"
)
n=$(( ${
i=0
while [ $i -lt $n ]
do
echo "1 элемент: ${ARRAY[$((2*$i))]}"
echo "2 элемент: ${ARRAY[$((2*$i+1))]}"
done
Вот и все. Для того, чтобы создать трехмерный массив, необходимо везде заменить "2" на "3".
|