Le fichier .desktop avec la variable de date ne fonctionne pas

1
[Desktop Entry]
Version=1.0
Type=Application
Name=test
Exec=bash -c 'DATE=$(date +%Y%m%d) ; echo $DATE'
Terminal=true
Icon=utilities-terminal

quand je double-clique dessus, rien ne se passe et je ne veux pas envelopper un autre script dessus, que dois-je faire pour réparer ce one-liner?

Thomas G. Lau
la source
2
Essayez d'échapper à la %, ce sera donc%%Y%%m%%d
muru
2
Plus précisément, les réserves standard de freedesktop %pour des codes de champ spéciaux tels que %F(liste des fichiers à transmettre à l'application), etc. - voir La clé Exec
steeldriver

Réponses:

4

Comme indiqué à juste titre par steeldriver et muru, le standard freedesktop spécifie que les arguments de type de fichier utilisent un %symbole, mais peuvent être échappés via un double % signe.

Un problème supplémentaire dans votre programme est que la configuration par défaut gnome-terminalsera lancée, mais quitte immédiatement après la sortie du programme enfant. Dans votre cas, bash -cquitterait une fois l'écho terminé. Afin de maintenir le terminal ouvert, vous devez ajouter un autre appel shell. De plus, vous n'avez pas besoin de faire écho à la variable, vous pouvez simplement l'utiliser datedirectement. Ainsi, votre fichier modifié ressemblerait à ceci:

[Desktop Entry]
Version=1.0
Type=Application
Name=test
Exec=bash -c 'echo "TEST";date +%%Y%%m%%d;bash'
Terminal=true
Icon=utilities-terminal

Comme vous pouvez le voir sur la capture d'écran, le deuxième appel à shell maintient correctement la fenêtre ouverte et affiche l'horodatage:

entrez la description de l'image ici

Voir également:

Sergiy Kolodyazhnyy
la source