Как использовать & ldquo; at & rdquo; команда в сценарии оболочки?

Я хотел бы использовать для записи аудио-рекордер. Он должен начать запись в определенное время и остановиться через несколько часов.

0
задан 17 December 2017 в 03:00

1 ответ

Полагаю, вы говорите об этом программном обеспечении , однако оно предоставляет только очень ограниченные параметры командной строки. Если вы хотите записывать звук из командной строки или в сценарии, вам лучше придерживаться программ командной строки - я, по сути, использую этот подход здесь. Чтобы это работало, вам может понадобиться установить некоторые пакеты, чтобы убедиться, что вы запустите sudo apt install pulseaudio-utils lame.

#!/bin/bash
sink="alsa_output.pci-0000_00_1b.0.analog-stereo"
echo 'f=$(date +%F_%R)_rec.mp3;timeout "'$2'" parec -d "'$sink'".monitor|lame -r -V0 - $f'|
at "$1"

Вам необходимо настроить значение sink для вашей системы, pacmd list-sinks|grep name: показывает, что оно заключено в <> (не копируйте их!). После этого сделайте скрипт исполняемым с помощью chmod +x SCRIPTNAME и запустите его, например, как. /path/to/SCRIPTNAME 10pm 30m для записи в течение 30 минут, начиная с 10 вечера. Запись будет сохранена в каталоге, где вы запускаете скрипт, например, 2017-12-17_10:00_rec.mp3 для записи, которая началась в эту дату и время. Если вы хотите изменить это, замените $(date +%F_%R)_rec.mp3 в скрипте.

Пример выполнения

$ ./test.sh 10:00 10m
warning: commands will be executed using /bin/sh
job 1 at Sun Dec 17 10:00:00 2017
$ atq
1      Sun Dec 17 10:00:00 2017 a dessert
$ atrm 1
$ atq
$

Как видите, вы можете использовать atq для отображения и atrm для удаления отложенного задания.

Формат времени и продолжительности

Что касается формата времени, см. man at, в частности:

В (…) принимаются времена в формате ЧЧ: ММ для запуска задания. в определенное время суток. (Если это время уже прошло, предполагается следующий день.) Вы также можете указать полночь, полдень или чаепитие (4 часа дня), и у вас может быть суффикс времени дня с AM или PM для работы утром или вечер. Вы также можете указать, в какой день будет выполняться задание, указав дату в форме имени месяца с указанием необязательного года или указав дату в форме MMDD [CC] YY, MM / DD / [CC] YY, ДД.ММ. [СС] ГГ или [СС] ГГ-ММ-ДД. Указание даты должно соответствовать указанию времени суток. Вы также можете указать время, например, сейчас + подсчитать единицы времени, где единицами времени могут быть минуты, часы, дни или недели, и вы можете указать, чтобы выполнить задание сегодня, добавив суффикс времени к сегодняшнему дню и запустив задание завтра. добавив время к завтрашнему дню.

Что касается формата продолжительности, см. man timeout, в частности:

DURATION - число с плавающей запятой с необязательным суффиксом: 's' для секунд (по умолчанию), 'm 'для минут,' h 'для часов или' d 'для дней.

0
ответ дан 17 December 2017 в 03:00

Другие вопросы по тегам:

Похожие вопросы: