Como sempre, há provavelmente um milhão de maneiras de fazer isso e a maneira como eu li a sua pergunta é sobre o seu problema da maneira errada, mas as primeiras são as primeiras.
Após digitar seu nome de usuário e senha corretamente, todos os scripts em /etc/X11/Xsession.d
são originados (não executados, é uma diferença muito importante!) em ordem alfabética. Então, se você quiser que alguma lógica aconteça após o login, mas antes que o ambiente de desktop seja iniciado, esse é o lugar para colocar seus scripts.
Nesse script, você pode colocar
for item in $(grep "stuff" /file/one)
do
echo "@program ${item}" >> /etc/xdg/lxsession/LXDE/autostart
done
Isso adicionará as linhas que você deseja arquivar as quais deseja adicioná-las. É o '> >' Isso faz com que o shell acrescente as linhas ao final do arquivo, em vez de substituir o arquivo. Essa é a resposta para sua pergunta.
Agora, eis o problema: com esse script, o resultado de seu grep
será adicionado ao arquivo de inicialização automática toda vez que você fizer login na sua máquina. Então, a primeira vez que o programa será executado uma vez. A próxima vez que você fizer o login duas vezes e três vezes no seu próximo login. A lista de seus programas de auto-inicialização continuará crescendo enquanto seu grep gerar resultados para adicionar ao arquivo de autoinicialização. É por isso que eu inicialmente disse que você está lidando com o seu problema da maneira errada.
Além disso, não existe apenas o% global/etc/xdg/lxsession/LXDE/autostart
. Você pode ter um arquivo ~/.config/lxsession/LXDE/autostart
para cada usuário individual. Mesmo se você for o único usuário trabalhando em sua máquina, você deve editar o arquivo em seu diretório pessoal ( ~
expande para seu diretório pessoal) que o global.
E como conselho final se você quer rodar programas, apenas adicione uma entrada ao seu ~/.config/lxsession/LXDE/autostart
para um shell script que faça um loop for como declarado acima, mas ao invés de adicionar linhas a algum arquivo você realmente executa os comandos. Quando você executar comandos com um &
no final da linha, esses programas serão executados em segundo plano e o script não será bloqueado.