Я хотел бы использовать аудиозапись для записи. Он должен начать запись в определенное время и остановиться после нескольких часов.
Я предполагаю, что вы говорите об этом программном обеспечении, однако он предоставляет только очень ограниченные параметры командной строки. Если вы хотите записывать аудио из командной строки или в скрипт, вы лучше придерживаетесь программ командной строки - я, по сути, использую этот подход здесь. Для этого вам может потребоваться установить некоторые пакеты, убедитесь, что вы выполняете 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, особенно:
В (...) принимает время формы HH: MM для выполнения задания в определенное время суток. (Если это время уже прошло, на следующий день предполагается.) Вы также можете указать полуночью, полудню или чаепитие (16:00), и у вас может быть время суток с AM или PM для работы по утрам или вечер. Вы также можете сказать, в какой день будет запущена работа, указав дату в виде месяца с именем месяца с дополнительным годом или давая дату формы MMDD [CC] YY, MM / DD / [CC] YY, DD.MM. [CC] YY или [CC] YY-MM-DD. Спецификация даты должна соответствовать спецификации времени суток. Вы также можете указать время, например: + count time-units, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффикс времени с завтрашним днем.Что касается формата продолжительности, см. man timeout, особенно:
В (...) принимает время формы HH: MM для запуска задания в определенное время день. (Если это время уже прошло, на следующий день предполагается.) Вы также можете указать полуночью, полудню или чаепитие (16:00), и у вас может быть время суток с AM или PM для работы по утрам или вечер. Вы также можете сказать, в какой день будет запущена работа, указав дату в виде месяца с именем месяца с дополнительным годом или давая дату формы MMDD [CC] YY, MM / DD / [CC] YY, DD.MM. [CC] YY или [CC] YY-MM-DD. Спецификация даты должна соответствовать спецификации времени суток. Вы также можете указать время, например: + count time-units, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффиксом времени с завтрашнего дня.
Я предполагаю, что вы говорите об этом программном обеспечении, однако он предоставляет только очень ограниченные параметры командной строки. Если вы хотите записывать аудио из командной строки или в скрипт, вы лучше придерживаетесь программ командной строки - я, по сути, использую этот подход здесь. Для этого вам может потребоваться установить некоторые пакеты, убедитесь, что вы выполняете 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, особенно:
В (...) принимает время формы HH: MM для выполнения задания в определенное время суток. (Если это время уже прошло, на следующий день предполагается.) Вы также можете указать полуночью, полудню или чаепитие (16:00), и у вас может быть время суток с AM или PM для работы по утрам или вечер. Вы также можете сказать, в какой день будет запущена работа, указав дату в виде месяца с именем месяца с дополнительным годом или давая дату формы MMDD [CC] YY, MM / DD / [CC] YY, DD.MM. [CC] YY или [CC] YY-MM-DD. Спецификация даты должна соответствовать спецификации времени суток. Вы также можете указать время, например: + count time-units, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффикс времени с завтрашним днем.Что касается формата продолжительности, см. man timeout, особенно:
В (...) принимает время формы HH: MM для запуска задания в определенное время день. (Если это время уже прошло, на следующий день предполагается.) Вы также можете указать полуночью, полудню или чаепитие (16:00), и у вас может быть время суток с AM или PM для работы по утрам или вечер. Вы также можете сказать, в какой день будет запущена работа, указав дату в виде месяца с именем месяца с дополнительным годом или давая дату формы MMDD [CC] YY, MM / DD / [CC] YY, DD.MM. [CC] YY или [CC] YY-MM-DD. Спецификация даты должна соответствовать спецификации времени суток. Вы также можете указать время, например: + count time-units, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффиксом времени с завтрашнего дня.