Alguém pode me mostrar como fazer um programa para fazer esta ação: após 5 minutos
echo "80" > /sys/class/leds/blue/brightness 
 Quero que este programa seja executado em segundo plano (como o serviço rngd). Não posso fazer isso porque não sei muito sobre Linux. 
Resposta
( sleep 300 ; echo "80" > /sys/class/leds/blue/brightness ) & 
Dessa forma, seu script continua ou você restaura o controle imediatamente, enquanto um novo tarefa em segundo plano do script é iniciada, com dois comandos: dormir e echo.
 O erro comum é tentar fornecer sleep ou echo ou ambos & que não funcionarão como pretendido. Lançar uma série de comandos em () embora os gere em um processo de shell separado, que você pode enviar todo para o fundo com &. 
Nesse sentido, onde o achei ativamente útil. Em um dispositivo embutido que desenvolvo, há o aplicativo principal que funciona com um watchdog. Se ele falhar de uma forma que acione a redefinição do watchdog logo após a inicialização, repetidamente, é difícil consertar remotamente como o período entre o início do SO e a reinicialização é muito curta, não o suficiente para fazer o ssh e bloquear a inicialização do aplicativo. Portanto, preciso encontrar uma maneira de determinar se o sistema foi reiniciado tão rápido e apresentar um atraso, se for o caso, para ter tempo de consertá-lo manualmente.
 [ -f /tmp/startdelay ] && sleep 30 touch /tmp/startdelay ( sleep 30 ; rm /tmp/startdelay ) & [ -f /tmp/noautostart ] && exit 0 start_app 
 Se eu faça login e execute touch /tmp/noautostart o aplicativo principal não será iniciado. Se o watchdog entrar em ação, rm /tmp/startdelay não será executado e o próximo vez que o sistema é iniciado, vou me dar 30 segundos extras para interrompê-lo. Caso contrário, o reinício será rápido, sem demora. 
Comentários
Resposta
 use o comando at 
echo "echo \"80\" > /sys/class/leds/blue/brightness" | at now + 5 min 
que será executado em segundo plano
Comentários
- Esta é a maneira certa de fazer isso , mas precisa do daemon atd em execução e na maioria dos sistemas precisará ter um pacote instalado.
 -  Você pode usar aspas simples para evitar o escape e renunciar 
echocompletamente usando um heredoc ou herestring. -  @Julian, 
até um comando POSIX padrão. Qual sistema semelhante ao Unix não ' o tem disponível por padrão? - @St é phaneChazelas – boa pergunta . Eu sei que ' tive esse problema, mas foi há um tempo. Fiz uma pequena verificação e o comando at parece bastante onipresente. Além disso, parece que o atd é específico do Linux e até mesmo em alguns sistemas Linux pode ser substituído por um daemon cron no estilo BSD. Vamos ' s considerar meu comentário desatualizado.
 - Tentei ' em ' e nenhum comando foi encontrado no Android 8
 
Resposta
Se você deseja que algo seja executado no 5 minutos, mas o resto do seu programa para continuar (ou terminar), você precisa colocar o sono em segundo plano também:
#!/bin/bash runWithDelay () { sleep $1; shift; "${@}"; } runWithDelay 3 echo world & echo hello 
 Isso imprimirá hello e 3 segundos depois (após o programa principal ter sido encerrado), imprima world. 
 A parte importante é o & para bifurcar a execução da função em segundo plano. 
Comentários
-  Posso sugerir 
runWithDelay () { sleep $1; "${@:2}"; }em vez disso? -  Acho que sim deve ler 
doWhateverWithDelay 3 &em seu segundo exemplo. - @manatwork: Cheers.
 -  @goldilocks, o essencial no uso de 
$@é que você pode citá-lo e será expandido como uma lista de palavras citadas. Portanto, é melhor torná-lo"$@"(ou"${@}"se você gostar das chaves).Veja pastebin.com/MU7hbB2C -  @manatwork: Point taken;) Eu tentei isso usando args com echo (
-n), mas obviamente isso foi um pouco ingênuo. 
¶ colocar em segundo plano o sono; " você também precisa colocar o sono em segundo plano " estava na primeira linha desde o início. Se você não ' não acredita em mim, consulte o histórico de edições. E minha resposta é 5 minutos mais velha que a sua: P(), o shell original fará uma pausa até que o que foi gerado termine.)