Vamos dar um exemplo simples:
Eu corri um script que está configurando um programa para o modo " on " (= 1) ou para o modo " off " (= 0). O script está sendo acionado por um simples clique no arquivo .desktop
.
O script é assim:
#!/bin/bash
DESKT=/home/user/program.desktop
if [ $(systemctl --user status program | grep -c running) = 0 ]; then
systemctl --user start program
echo "Icon=program_active" >> "$DESKT"
echo "Name=Program working" >> "$DESKT"
else
systemctl --user stop program
echo "Icon=Program_inactive" >> "$DESKT"
echo "Name=Program stopped" >> "$DESKT"
fi
O arquivo .desktop é assim:
[Desktop Entry]
Type=Application
Name=Program
Exec=program
Icon=program-inactive
A minha pergunta agora é:
Se eu ativar meu programa ativando o .desktop
-file, o nome do arquivo .desktop
será alterado para "Program working", o que é totalmente correto! Infelizmente, o ícone anterior (" program_inactive
") não foi alterado para o ícone agora necessário " program_active
".
Em vez de substituir o ícone inativo pelo ícone ativo correto, será gravada uma linha completamente nova com " Icon=program_active
" em vez de substituir a linha existente " Icon=program_inactive
". Por causa disso, agora existem duas linhas com " Icon=blabla
", o que é completamente inútil, é claro.
O que devo fazer para substituir a linha de ícones existente em vez de escrever uma nova linha inútil? Muito obrigado pelas suas ideias!