bash, écrire dans un tableau - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 09-09-2009 à 22:34:28
Je sais pas mais :
Citation : wall[$cpt]=`echo "$LINE"` |
C'est affreux
Citation : wall[$cpt]="${LINE}" |
et :
Citation : cpt=$(($cpt+1)) |
En plus clean :
Citation : let cpt++ |
Non ?
Marsh Posté le 09-09-2009 à 22:59:10
dams78 a écrit : scripts/bin/wallpaper.sh: 34: wall[0]=/home/damien/wallpapers/980720669.jpg: not found |
Ligne fautive :
Citation : wall[$cpt]=`echo "$LINE"` |
on décortique :
echo "$LINE" => tu affiches le contenu de la variable LINE
`echo "$LINE"` => tu exécutes (``) le résultats de la commande echo ... => tu exécutes /home/....
wall[$cpt]=`...` => le résultat de l'exécution de ce que ton echo a affiché est stocké dans ton tableau wall
Marsh Posté le 10-09-2009 à 07:51:11
le truc c'est qu'il y a encore quelques temps (un ou deux mois) ce script fonctionnait
par contre c'est vrai que le echo $LINE c'est moche, juste après avoir écris ce message j'ai essayé wall[$cpt]="$LINE" ça faisait pareil, je vais donc essayer wall[$cpt]="${LINE}", pareil pour le compteur
je vous tiens au courant ce soir, merci de votre aide
Marsh Posté le 10-09-2009 à 07:53:38
fighting_falcon a écrit : `echo "$LINE"` => tu exécutes (``) le résultats de la commande echo ... => tu exécutes /home/.... |
Non.
`truc` => exécute truc
`echo toto` => exécute echo toto => affiche toto
Marsh Posté le 10-09-2009 à 16:38:45
pour l'instant j'ai droit à ça
scripts/bin/wallpaper.sh: 31: let: not found
et toujours l'erreur du fichier introuvable
Marsh Posté le 10-09-2009 à 16:44:46
et euh ...
cpt=0 |
non ?
Marsh Posté le 10-09-2009 à 19:02:35
ça n'a pas l'aire...
|
Marsh Posté le 10-09-2009 à 19:10:16
ta distrib, c'est pas debian stable des fois ?
parce que si oui, sur etch, /bin/sh était un lien vers bash, sous lenny c'est devenu un lien vers dash.
C'est peut être ça le problème ...
Marsh Posté le 10-09-2009 à 19:10:19
je pense à un truc là,
je sais pas si ça peut avoir un lien mais j'utilise un logiciel kdenlive qui me fait un truc semblable en ce moment, en gros c'est un soft pour faire du montage vidéo et quand je veux ajouter une vidéo il me dit que le clip (que je viens de sélectionner) est manquant
je sais pas si c'est une coïncidence...
Marsh Posté le 10-09-2009 à 19:14:10
un extrait de ce que me retourne un sh -x :
|
le compteur à l'aire de fonctionner, mais je comprend toujours pas l'erreur not found
Marsh Posté le 10-09-2009 à 19:28:51
j'ai effectivement un lien vers dash
je viens de tester bash monscript et la boucle passe, je décommente le reste
je peux le remplacer le lien?
--edit
bon bah j'ai remplacer dash par un lien vers /bin/bash
et ça fonctionne
merci beaucoup (par contre mauvaise piste pour kdenlive, le problème doit venir d'ailleurs, je vais attendre une mise à jour)
Marsh Posté le 10-09-2009 à 19:42:13
alors, laisse ton lien sur dash (dpkg-reconfigure bash ou dash je crois pour configurer ça).
C'est ton script qui doit commencer par #!/bin/bash plutot.
Ensuite si tu veux le corriger, install le paquet checkbashism et lance le sur ton script. Ca te dira la ou tu as écris du bash et non du sh standard
Marsh Posté le 10-09-2009 à 20:40:17
les basheries c'est le mal
Marsh Posté le 09-09-2009 à 19:10:42
bonsoir,
depuis quelques temps j'ai un script bash qui ne fonctionne plus, et pourtant j'ai rien changer dedans...
find $rep -name *.jpg -type f | ( while read LINE
do
wall[$cpt]=`echo "$LINE"`
cpt=$(($cpt+1))
done
i=$(($RANDOM % $cpt))
...
et je me retrouve avec cette erreur : scripts/bin/wallpaper.sh: 34: wall[0]=/home/damien/wallpapers/980720669.jpg: not found
et aussi scripts/bin/wallpaper.sh: 31: arithmetic expression: expecting primary: " % 293" (cette erreur provient du $RANDOM, mais je dois utiliser quoi maintenant?)
si vous savez ce qui cloche je suis prenneur
merci
---------------
dam's (debianer), ma galerie Flickr