Vous n'êtes pas identifié(e).
Salut à tous
j'e suis devant un "os" avec une petite application super utile (pour moi !) que j'ai trouvé sur le site de Thuban (https://yeuxdelibad.net/Logiciel-libre/ … enbox.html
C'est un todo qui me permet de noter les titres de livre que je souhaite feuilleter.
j'ai donc crée un fichier où j'ai collé le code proposé par Thuban:
[== Indéfini ==]
#!/bin/sh
#Todo menu for Openbox
#Copyright (c) 2010 Cameron Turner
#Released under a BSD license
SB="#000000"
SF="#00AFAF"
NB="#000000"
NF="#797979"
# La police de dmenu
FN="-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso10646-*"
# Le prompt, ce que dmenu vous "dit"
P="Todo:"
OPTION="-fn $FN -nb $NB -nf $NF -sb $SB -sf $SF -i -p $P "
TODO_PATH=~/.todo
[ -z "$XDG_CONFIG_HOME" ] || TODO_PATH="$XDG_CONFIG_HOME/todo"
[ ! -f $TODO_PATH ] && touch $TODO_PATH
if [ "$1" = "add" ]
then
TODO=`echo "" | dmenu $OPTION`
[ "$TODO" = "" ] && exit
echo $TODO >> $TODO_PATH
elif [ "$1" = "delete" ]
then
TEMP=`mktemp`
sed "$2 d" $TODO_PATH > $TEMP
mv -f $TEMP $TODO_PATH
elif [ "$1" = "edit" ]
then
TODO=`sed "$2 !d" < $TODO_PATH`
TODO=`echo "" | dmenu $OPTION`
[ "$TODO" = "" ] && exit
TEMP=`mktemp`
TODO=`echo -n $TODO | sed -e "s/\&/\&/g" -e "s/</\</g" -e "s/>/\>/g"`
sed "$2 c$TODO" $TODO_PATH > $TEMP
mv -f $TEMP $TODO_PATH
else
echo "<openbox_pipe_menu>"
i=1
while read LINE
do
echo "<menu id=\"todo-$i\" label=\"$LINE\">"
echo "<item label=\"Editer\">"
echo "<action name=\"Execute\"><execute>$0 edit $i</execute></action>"
echo "</item>"
echo "<item label=\"Supprimer\">"
echo "<action name=\"Execute\"><execute>$0 delete $i</execute></action>"
echo "</item>"
echo "</menu>"
i=$(($i+1))
done < $TODO_PATH
echo "<separator />"
echo "<item label=\"+ todo\">"
echo "<action name=\"execute\"><execute>$0 add</execute></action>"
echo "</item>"
echo "</openbox_pipe_menu>"
fi
et jusqu'à ce matin ça fonctionnait très bien. Mais comme un con, en entrant le titre d'un nouveau bouquin, je l'ai fait précédé d'un" et ça bloque le fonctionnement de l'appli. Lorsque je veux voir la liste des livres, j'ai un message d'erreur "sortie du pipe-menu invalide".
J'essaye donc d'accéder à la liste des livres afin de la modifier, afin de supprimer le ".
Lorsque je tape dans un terminal:
[== Indéfini ==]
arno@CBbureau:~$ /home/arno/Informatique/bash/obtodo.sh
j'ai bien la liste des livres qui apparaît, avec la ligne "incriminée" !!!
[== Indéfini ==]
</menu>
<menu id="todo-20" label=""donner: une histoire de l'altruise" de steiner">
<item label="Editer">
<action name="Execute"><execute>/home/arno/Informatique/bash/obtodo.sh edit 20</execute></action>
</item>
on voit le " devant le mot donner. mais je ne peux pas supprimer dans cette liste. Si je fais "nano /home/arno/Informatique/bash/obtodo.sh", j'ai le code de l'application mais pas la liste des livres.
Donc je suis un peu bloqué !!!
vous avez une idée ?
Dernière modification par arno (20-02-2017 13:13:32)
Hors ligne
J'ai trouvé la solution !!! comme c'était la ligne 20 qui déconnait j'ai tapé
[== Indéfini ==]
arno@CBbureau:~$ /home/arno/Informatique/bash/obtodo.sh delete 20
et bing !! elle a disparu et j'ai à nouveau accès à ma liste !!
Le truc dingue c'est que le fait de poser ma question ici semble faire partie du processus de découverte de la solution que je sollicite chez les autres....!!!!
Donc, merci pour votre écoute et pardon pour le dérangement !!!
Hors ligne
Salut,
Est-ce que tu as posé la question a Thuban (vu que c'est son code) déjà ? On va tout de même regarder et voir ce qu'on peut faire mais ca demandera qu'on étudie/teste le code auparavant pour comprendre comment il tourne.
<menu id="todo-20" label=""donner: une histoire de l'altruise" de steiner">
Comment as-tu tapé ta commande contenant les " ? tu peux soit mettre \" sur les " intérieur soit enfermer toutes la chaîne entre ' auparavant. A essayer.
Bien à toi.
Edit: bon ben comme tu as trouvé la solution. Sujet résolu.
Hors ligne