Lubuntu 16.04 - Session Openbox
Je peux utiliser le terminal pour ouvrir un fichier horodaté avec gedit
:
gedit ~/$(date +%Y%m%d%H%M%S).txt
La commande peut également être utilisée via un raccourci clavier dans Openbox.
<keybind key="W-4"> # gedit time-stamped file
<action name="Execute"><command>sh -c 'gedit ~/$(date +%Y%m%d%H%M%S).txt'</command></action>
</keybind>
Mais je ne peux pas faire de même via la Exec=
ligne d'un .desktop
fichier.
Exec=sh -c 'gedit ~/$(date +%Y%m%d%H%M%S).txt'
crée simplement un fichier appelé ~/.txt
Alors, comment puis-je obtenir un fichier .desktop pour faire ce que je veux?
$()
commandes de sous-shell comme ça. Je pense que vous en avez besoin pour appeler un autre script qui contient votre commande de sous-shell pour ouvrir votre fichier.Exec=/bin/bash -c "echo $(date) > ~/out.txt"
fonctionnent correctement . le+%Y%m%d%H%M%S
semble être le problème. encore à mâcher.Réponses:
Malheureusement, les fichiers .desktop n'appellent pas toujours les commandes de sous-shell
$()
comme nous le souhaiterions. Une façon de faire cela que j'ai trouvé serait de créer un autre script qui contient la commande sous-shell pour ouvrir le fichier comme ça.La
Exec
ligne ressemblerait à:alors votre fichier de script contiendrait la commande pour ouvrir votre nouveau fichier:
le script devrait également être exécutable:
J'espère que cela t'aides!
la source
cron
là où certains caractères (%
?) Doivent être esacpés?sources.list
fichier d'apt vous ne pouvez pas remplacer le nom de la version$(lsb_release -sc)
car cela ne fonctionne pas non plus. Si vous le comprenez, j'aimerais voir comment vous l'avez fait. :)+\%Y\%m\%d\%H\%M\%S
alors cela devrait fonctionner.Le problème
Un script n'est pas nécessaire.
Le problème n'est pas qu'un
.desktop
fichier ne peut pas exécuter de commandes avec des sous-coquilles, carfonctionne parfaitement bien dans un
.desktop
fichier.En tripotant la commande, je suis arrivé à la conclusion que le
%
caractère-est à l'origine du problème. Je n'ai cependant aucune explication à cela, et jusqu'à présent je n'ai pas pu trouver d'informations sur la façon de résoudre ou d'échapper à cela.Je suis donc allé chercher une commande pour obtenir l'heure sans utiliser le personnage suspect.
Vous pouvez également utiliser Ruby pour la date et l'heure
Cela m'amène à
Ruby
, qui produit la date et l'heure actuelles à partir de la commande:Lorsque nous modifions un peu la sortie avec
awk
, en supprimant les espaces et les délimiteurs, nous avons exactement ce que nous voulons, et une commande de travail dans le.desktop
fichier, car nous n'utilisons pas%
:Remarque!
Sans doute, la commande peut être un peu "charmée", je vais probablement éditer un peu la réponse aujourd'hui ou demain.
la source
.desktop
fichiers comme celui-ci auparavant ...