Полезные фрагменты shell скриптов (FreeBSD)

 

Здесь я приведу полезные фрагменты из shell скриптов, которые кому-то могут оказать помощь.

gnome-terminal

 

1. Переименовать файл с указанием времени создания и последнего изменения

 

Функция shell скрипта, которая переименовывает файл в вид

день.месяц.год_(часы:минуты:секунды-часы:минуты:секунды)

Где обозначается дата создания файла, а в скобках время создания и время последнего изменения файла. Например 31.12.2014_(18:55:00-23:00:00). Эта функция может пригодиться если происходит запись с камеры или видеопотока в файл и его необходимо как то обозначить, с какого по какое была запись.

Сама функция:

Как использовать?

Вставляем тело функции в начале shell скрипта, а в нужном для нас месте вызываем ее:

 

Подробнее о работе функции, первая строка в теле функции


формирует текстовую строку

«день.месяц.год_(часы:минуты:секунды-«.

awk {‘print $12’} нужно чтоб отсеять «другие времена», такие как время изменения, время последнего доступа и т.п.

Вторая строка


нужна для формирование второй половины  «часы:минуты:секунды)«. Я не помню точно причин, почему я разбил на 2-е половины а не сделал все в одной, скорее всего из-за длинного регулярного выражения stat отказывался работать.

Третья строка


объединяет две строки в одну, далее с помощью команды awk -F \» разделяем объеденную строку

«день.месяц.год_(часы:минуты:секунды-««часы:минуты:секунды)« на части, разделителем служит знак кавычки » и печатаем второй и четвертую часть, проще говоря мы из строки

«день.месяц.год_(часы:минуты:секунды-««часы:минуты:секунды)« убираем кавычки и получаем строку

день.месяц.год_(часы:минуты:секунды-часы:минуты:секунды)

Четвертая строка

переименовывает файл в новое имя $new_name  с прибавлением .avi

 

 2. Убить процесс зная его имя?

 

Иногда нужно в скрипте убить процесс, а мы знаем только его имя, как быть?

Ответ:

 

3. Как прибавить число к переменной?

 

Если вы напишете i=i+1 в итоге получится i=i1, переменная в shell это всегда текстовая строка. Так как прибавить единицу или любое другое число?

Ответ:

 

4. Как узнать количество папок и файлов?

 

Иногда нужно в цикле знать, сколько содержится в той или иной директории файлов и папок.

Ответ:

Переменная i будет хранить число.

 

5. Как удалить файлы 4-ех дневной давности? (любой дневной давности)

 

Может пригодится, если с помощью скрипта необходимо очищать старые логи или видеоархив с камер.

Ответ:

 




Буду признателен если вы поделитесь данным постом


Ваш комментарий


Ответ в цифрах

 
© s-engineer.ru, 2012-2017 | Все права защищены