Como usar o comando “at” no shell script?

0

Eu gostaria de usar o gravador de áudio para gravação. Ele deve começar a gravar em um determinado horário e parar depois de horas.

    
por Spin 16.12.2017 / 23:04

1 resposta

0

Suponho que você esteja falando sobre este software , no entanto, ele fornece apenas opções de linha de comando muito limitadas. Se você quiser gravar áudio a partir da linha de comando ou em um script, é melhor ficar com os programas de linha de comando - eu estou essencialmente usando essa abordagem aqui. Para que isso funcione, você pode precisar instalar alguns pacotes, execute sudo apt install pulseaudio-utils lame para ter certeza.

#!/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"

Você precisa ajustar o valor de sink para o seu sistema, pacmd list-sinks|grep name: mostra que está entre <> (não copie esses!). Depois disso, torne o script executável com chmod +x SCRIPTNAME e execute-o como, por exemplo, /path/to/SCRIPTNAME 10pm 30m para gravar por 30 minutos a partir das 22h. A gravação será salva no diretório em que você executa o script, por exemplo, 2017-12-17_10:00_rec.mp3 para uma gravação iniciada nesta data e hora. Se você quiser mudar isso, substitua $(date +%F_%R)_rec.mp3 no script.

Exemplo de execução

$ ./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
$

Como você pode ver, você pode usar atq para exibir e atrm para remover um trabalho pendente.

Formato de hora e duração

Quanto ao formato de hora, consulte man at , especialmente:

% bl0ck_qu0te%

Quanto ao formato de duração, consulte man timeout , especialmente:

% bl0ck_qu0te%     
por dessert 17.12.2017 / 00:59