Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

nombre réponses : 25

#0 Re : -1 »  créer fichier texte en complètant un liste » Le 13/12/2014, à 13:24

Watael
Réponses : 7

salut,

il faudrait créer un tableau, en supprimer les fichiers utilisés, et le régénérer lorsqu'il est vide.

#1 Re : -1 »  créer fichier texte en complètant un liste » Le 13/12/2014, à 14:10

Watael
Réponses : 7

quelque chose comme ça :

#!/bin/bash

fillin(){
   while read f; do liste+=( "$f" ); done < <(find $HOME/Images/wallpapers -type f | shuf)
}

while true
do
   ((${#liste[@]})) || fillin
   gsettings set org.gnome.desktop.background picture-uri "file://${liste[0]}"
   unset liste[0]
   liste=( "${liste[@]}" )
   sleep 450 
done

je n'ai pas testé sad

#2 Re : -1 »  remplacer ls » Le 25/11/2014, à 02:30

Watael
Réponses : 21

salut,

le shell dispose de motifs généraux (globs) utilisant des caractères génériques pour ça :

printf '%s\n' ./*

cf. man bash / Développement des chemins

#3 Re : -1 »  [résolu] Une ligne de commande pour changer : en - sur mes images » Le 29/11/2014, à 11:51

Watael
Réponses : 9

salut,

je ne peux pas lire mes captures d'écran dont le format comporte deux fois :

ce n'est sûrement pas dû aux deux points. hmm
ou alors, tu veux dire que sur W$ ce n'est pas possible ? roll

#4 Re : -1 »  boucle script bash » Le 23/11/2014, à 23:47

Watael
Réponses : 2

salut,

attention, il ne faut pas confondre /bin/sh et /bin/bash; si tu veux faire un script bash, le shebang doit être bash !

j'aimer que une fois que j'ai entrer oui le programme redemare a 0 est lorsque je met non le programe ce ferme

il faut utiliser une boucle `while true', en positionnant un `break' sur l'option "non".

le code de retour du `exit' final doit être celui de l'exécution des commandes essentielles du script, et non, arbitrairement "0".
de toutes façons, le script s'arrête quand il est fini ! donc, ce `exit 0' est inutile, voire néfaste, car il peut masquer l'état de la dernière commande.

#5 Re : -1 »  [RESOLU] for fic in `cat $nomserv` Que fai cette commande? » Le 05/11/2014, à 16:47

Watael
Réponses : 14

salut,

cette commande n'étant pas complète, elle ne fait rien, et l'interpréteur affichera une invite secondaire pour indiquer qu'il attend la suite, ou, dans le cas d'un script, écrira un message d'erreur.


pour info, la lecture d'un fichier, par l'interpréteur de commandes, ligne par ligne, se fait avec une boucle while vers laquelle on redirige le dit fichier.

#6 Re : -1 »  Problème de remplissage de tableaux sous ubuntu 14.04 » Le 03/11/2014, à 19:34

Watael
Réponses : 3

salut,

Je remplis le tableau dans la boucle et hors de la boucle le tableau parait vide.

le pipe initie un sous-interpréteur en dehors duquel les variables qui y sont créées n'existent pas.

si tu utilises `ls' pour simplement obtenir la liste des fichiers d'un répertoire, tu dois plutôt te servir des globs de bash par exemple :

repertoire=~
listeFichiers=( $repertoire/* )

c'est tout.

#7 Re : -1 »  problème exécution de script bash » Le 24/09/2014, à 16:09

Watael
Réponses : 5

salut,

simplifier les choses aide au débuggage!

quand on connaît le nom exact du processus qu'on cherche à détecter, on peut se satisfaire de `ps -C <processus_cherche>'

j'ai testé ta fonction, telle quelle, et elle retourne bien 0... hmm

#8 Re : -1 »  problème exécution de script bash » Le 24/09/2014, à 16:39

Watael
Réponses : 5

et moi, «je pense surtout» que tu manques de connaissances élémentaires en script shell :
`if' conditionne l'exécution de telle ou telle autre partie (`then', ou `else') en fonction du retour de la commande exécutée, que ce soit `[', `test', `[[', ou n'importe quelle autre commande.

#9 Re : -1 »  Shell : division d'une variable dans un IF » Le 22/08/2014, à 12:57

Watael
Réponses : 6

salut,

`expr' est inutile avec un shell compatible POSIX.

for ...; do ...; done

#10 Re : -1 »  Différent Terminal » Le 18/08/2014, à 21:37

Watael
Réponses : 9

salut,

tiramiseb a écrit :

[xterm n'a] pas de menu contextuel

si, si, ils sont accessibles avec les boutons de la souris, et la touche Ctrl.

#11 Re : -1 »  lire le terminal en continue j'usquà l'apparition d'un caractère. » Le 13/08/2014, à 21:52

Watael
Réponses : 8

salut,

la boucle simule le programme d'affichage

$ n=0
$ a=(a b c d e f g h i \* j k l m )
$ while sleep 1; do test "$n" -lt ${#a[@]} && echo "${a[@]:n++:1}" || break; done | { read -d '*' bla; echo "$bla - fini! ";}

quelque temps plus tard, cela affiche ceci:

a
b
c
d
e
f
g
h
i - fini! 

#12 Re : -1 »  Améliorer mon script de découpage de CSV » Le 26/07/2014, à 06:37

Watael
Réponses : 8

salu,

je ferais bien un bête sed, plutôt qu'un lourd for:

read ligne1 < fichierOrig
sed -si '1i'"$ligne1" "$dest"*

#13 Re : -1 »  Terminal : permission non accordée .gvfs pour chown ou chmod » Le 19/07/2014, à 21:39

Watael
Réponses : 13

salut,

ls -ld ~/.gvfs
drwx------ 2 <user> <user> 4096 <mois>   <jour> <hr>:<mn> /home/<user>/.gvfs/

et c'est pareil pour tous les utilisateurs du système.

#14 Re : -1 »  Terminal : permission non accordée .gvfs pour chown ou chmod » Le 20/07/2014, à 14:18

Watael
Réponses : 13

En fait, Watael a remplacé manuellement toutes les informations données par ls -ld ~/.gvfs, tu ne peux donc pas en tirer grand-chose ...

c'est quand même cohérent, s'il y avait eu des utilisateurs différents, j'aurais remplacé par <user_x>, <user_y>, et, si cela avait été le cas, j'aurais laissé root.

Cela dit, chez moi, le dossier .gvfs est vide et je ne sais pas du tout à quoi sert ce truc !?

c'est bien la peine d'intervenir. sad

#15 Re : -1 »  Mini script bash » Le 18/07/2014, à 15:26

Watael
Réponses : 13

salut,

les variables ne sont pas développées entre accolades, parce que ces dernières sont développées avant les premières.

avec des variables, il faut encore utiliser seq sad
ou, en lourdingue, une boucle avec une incrémentation.

mais je suis d'accord avec jplemoine, dis-nous en davantage sur ton projet : ce que tu as, ce que tu veux...

#16 Re : -1 »  Mini script bash » Le 18/07/2014, à 15:39

Watael
Réponses : 13

en full bash:

read debut
read fin
for ((i=debut;i<=fin;i++)); do echo "traitement fichier #$i"; done

#17 Re : -1 »  Mini script bash » Le 19/07/2014, à 19:06

Watael
Réponses : 13

la "dernière" boucle `for' n'est évidemment pas exécutée dans le `echo' :\

#18 Re : -1 »  Completion par * [Résolu] » Le 17/07/2014, à 12:00

Watael
Réponses : 4

salut,

en bash (il faut avoir activé extglob) :

rm !(file.php)

#19 Re : -1 »  [Résolu] Générer une suite de x lettres » Le 12/07/2014, à 09:04

Watael
Réponses : 6

salut,

avec un tableau supplémentaire

#!/bin/bash
lettres=( {A..Z} )
var[1]=TOTO001A1
read -p 'Entrer un nombre : ' nb
for (( i=2; i<=nb; i++ ))
do
   var[i]="${var[1]::-2}${lettres[nb]}${var[1]: -1}
done

pourquoi ne pas commencer ton tableau avec l'indice par défaut (zéro) ?

#20 Re : -1 »  [Résolu] Script (mais pas que) pour couper le nom d'un fichier » Le 09/07/2014, à 21:30

Watael
Réponses : 29

bah, non :

autant d'appel à awk que de parties à couper, c'est moins que moyen wink
ma solution 100% bash a dû passer inaperçue hmm

#21 Re : -1 »  [Résolu] Script (mais pas que) pour couper le nom d'un fichier » Le 09/07/2014, à 23:20

Watael
Réponses : 29
#!/bin/bash

ext=ecw
for f in *.$ext; do mv -i "$f" "${f%-*-*-*-*}.$ext"; done

voilà, voilà !

#22 Re : -1 »  [Résolu] Script (mais pas que) pour couper le nom d'un fichier » Le 09/07/2014, à 23:40

Watael
Réponses : 29

quel est intérêt de la variable ext ? ne peut-on pas mettre ecw en dur ?

si le script doit être ré-utilisé avec une autre extension, celle-ci n'aura à être modifiée qu'à un seul endroit.

#23 Re : -1 »  [Résolu] Script (mais pas que) pour couper le nom d'un fichier » Le 10/07/2014, à 07:27

Watael
Réponses : 29

tous mes fichiers sont appelés A-B-C-D-xxxxxxxxxxx.ecw

évidemment, si tu changes le format des noms de fichiers...

for f in *.$ext; do IFS='-' read a b c d _ <<<"$f"; echo "$a-$b-$c-$d.$ext"; done

ou

for f in *.$ext; do IFS='-' read -a b <<<"$f"; (IFS='-'; echo "${b[*]::4}.$ext"); done

#24 Re : -1 »  [Résolu] Script (mais pas que) pour couper le nom d'un fichier » Le 11/07/2014, à 13:04

Watael
Réponses : 29

on considère un champ par rapport à un séparateur, là : 66-2012-0594-6158-LA93-0M50-RVB-E100.ecw
en prenant - comme séparateur, je compte 8 champs.

et effectivement, ${paramètre%%mot} effectue un Retrait du motif correspondant au suffixe.