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

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

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

2 ответа

Я предполагаю, что вы говорите об этом программном обеспечении, однако он предоставляет только очень ограниченные параметры командной строки. Если вы хотите записывать аудио из командной строки или в скрипт, вы лучше придерживаетесь программ командной строки - я, по сути, использую этот подход здесь. Для этого вам может потребоваться установить некоторые пакеты, убедитесь, что вы выполняете 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 в скрипте.

Пример run

$ ./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, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффиксом времени с завтрашнего дня.

0
ответ дан 18 July 2018 в 01:03

Я предполагаю, что вы говорите об этом программном обеспечении, однако он предоставляет только очень ограниченные параметры командной строки. Если вы хотите записывать аудио из командной строки или в скрипт, вы лучше придерживаетесь программ командной строки - я, по сути, использую этот подход здесь. Для этого вам может потребоваться установить некоторые пакеты, убедитесь, что вы выполняете 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 в скрипте.

Пример run

$ ./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, где единицы измерения времени могут составлять минуты, часы, дни или недели, и вы можете сказать, чтобы сегодня запустить работу, суффикс времени с сегодняшнего дня и завтра запустить работу суффиксом времени с завтрашнего дня.

0
ответ дан 24 July 2018 в 17:19

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

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