Seguinte...
Comecei do zero mesmo, não manjava nada de shell script, entaão montei um script que resumidamente faz o que se segue:
Pimeiro, o usuario digita a Hora (0 a 23) e depois o Minuto (00 ou 30) para inicio da captura de video atraves de um programa mp4live.
Falta ainda implementar a duração da gravação do sistema, mas isso eh outro assunto.
Gostaria que me dissessem se o script está ok, se há uma outra forma de se fazer mais simples ou não. Li sobre crontab.. mas pelo oq entendi ela executa o script sempre nos momentos que vc programa nela. Desta forma não sei como utilizar ela de forma que o usuário sempre q desejar iniciar na hora q ele quiser o programa, por isso fiz como se segue.
Ou seja, eu somo a hora e minuto que o usuário quer o inicio da gravação, então a rotina fica pegando a hora e minuto atuais, somando-as e comparando com a soma informada pelo usuário. caso iguais começa a gravação.
#!/bin/bash
inicio() {
echo "SIVIRES" #Nome do projeto
echo "Iniciar gravação em:"
read -p "Hora(00 a 23): " hora
if [ $hora -gt 23 ]; #Nesse If amarro para o usuário não digitar um valor de hora maior que 23 horas
then
clear
echo "Parametro Incorreto"
inicio
else
echo "Minutos: "
echo "[1] 00"
echo "[2] 30"
echo -n "Digite a opção: "
read opcao
case $opcao in
1) min="0" ;;
2) min="30" ;;
*) clear ; echo "Parametros Incorretos" ; inicio ;;
esac
fi
}
gravacao() { #rotina "principal" aqui que será executada a gravação no mp4live
loop="enabled"
while [ $loop = "enabled" ]; do
echo "SIVIRES"
data="`date +%Y_%m_%d_%H_%M`"
echo "Data e Hora Atual:$data"
sed -i "s|^recordFile=.*|"recordFile=/usr/local/movies/$data".mp4|" /home/jarbas/.mp4live_d/Streams/Teste
echo "Gravando..."
sudo mp4live --automatic
killall mp4live
done
}
dat() { #funçao que soma hora e minuto atual
Hatual="`date +%H`"
Matual="`date +%M`"
Satual=$(($Hatual+$Matual))
}
main() { # Função que testa se a hora e minuto que o usuário quer q a gravação comece é igual a hora e minuto atual
soma=$(($hora+$min))
dat
#echo "Soma INICIO: $soma"
#echo "Soma ATUAL: $Satual"
if [ $soma -eq $Satual ];
then
gravacao
else
main
fi
}
inicio
main