Mon objectif est d'utiliser la sortie d'un script bash script pour insérer la chaîne résultante dans un fichier texte à l'aide d'une touche de raccourci définie par le système.
Le script (voir ci-dessous) fonctionne parfaitement dans le terminal. Mais lorsque je le déclenche à partir de ma touche de raccourci (j'utilise : super + alt + u au cas où cela aurait de l'importance), je n'obtiens rien du script. L'éditeur (par exemple, gedit) semble "clignoter", mais rien ne se passe. Je suppose que le script fonctionne, mais que je ne "termine" pas le script correctement pour cette utilisation( ?).
C'est le script : il prend un timestamp unix (sortie de date +%s
), la convertit en base62, puis renvoie les quatre derniers caractères de la chaîne résultante. (Pour les curieux, je l'utilise pour générer des ancres raisonnables pour les notes de bas de page dans un texte "Markdown").
#!/bin/bash
# takes unix timestamp and converts to base62
# HT: https://stackoverflow.com/a/14472352/232251
function u2b {
v=$(date +%s)
BASE62=($(echo {0..9} {a..z} {A..Z}))
for i in $(bc <<< "obase=62; $v"); do echo -n ${BASE62[$(( 10#$i ))]}
done
}
r=$(u2b)
echo ${r: -4}
J'ai essayé la dernière ligne avec printf ${r: -4}
mais cela ne sert à rien.
Comment puis-je persuader cette combinaison script/clé de fournir une "entrée" à mon éditeur ? (J'utilise la dernière version vanille d'Ubuntu).