<![CDATA[Forum Ubuntu-fr.org / Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?id=338616 Sun, 13 Jun 2010 13:28:17 +0000 FluxBB <![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3545860#p3545860 Désolé, j'ai beau essayer de comprendre via ton script, Totor, mais ça me reste flou.

]]>
Sun, 13 Jun 2010 13:28:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3545860#p3545860
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3517084#p3517084 consulte le manuel du bash pour plus de détail sur getopts

]]>
Mon, 31 May 2010 17:07:42 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3517084#p3517084
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3516993#p3516993 Merci.

Je m'en vais copier ton script sur un .txt et analyser ça tranquillement.

]]>
Mon, 31 May 2010 16:21:45 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3516993#p3516993
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3516947#p3516947 19 :
Oui : unalias <nom_alias>

20 :

Oui avec getopts : Pour exemple

]]>
Mon, 31 May 2010 16:03:14 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3516947#p3516947
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3516729#p3516729 Bonjour

Je déterre ce sujet — et me découvre par la même occasion une vocation  pour l'archéologie … ou pas — car ça m'évite d'en créer un autre et le recyclage c'est bon pour l'environnement — quelle excuse à la con.

Ne déterrant pas le sujet pour des prunes, voici mes nouvelles questions :

Dans la série "C'est possible, ça ? O.O" :
19-Est-il possible de supprimer un alias que l'on a créé et qui ne nous sert plus ?

20-Est-il possible de gérer des options ? Si oui, comment ?
Voici un exemple pour illustrer ce que j'entends par « option » :

ls -lA ~/Documents

Ici, -lA est l'option de ls.

Merci d'avance.

]]>
Mon, 31 May 2010 14:40:32 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3516729#p3516729
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3121709#p3121709 Pour la récursion je n'avais plus l'exemple en tête et je n'avais pas l'algo sous la main (il était paumé dans le bazar qui orne mon bureau) ; tout ce dont je me souvenais c'est qu'il y avait trois boucles « pour » et deux « si » imbriqués les uns dans les autres, que le rappel de la fonction était tout au fond de ce pêle-mêle et qu'il pouvait y avoir un gros pépin.

Maintenant je l'ai retrouvé mais la supposée erreur n'est pas corrigée ; elle concerne np et nd dans l'algo.

int fnc(int tab_p[],int tab_d[],int S)
     int np, nd //variables-limites
     int j, k, l //indices de boucle
//initialisation
     np = 0
     nd = 0
     pour(j=0 ; j≤10 ; j++)
        np += tab_p[j]
        nd += tab_d[j]
     fin-pour
//L'imbriquation
     pour(j=1 ; j≤4 ; j++)
        pour(k=0 ; k≤(np-1) ; k++)
           si(tab_d[k]=1)
           alors
              tab_d[k] = 0
              pour(l=0 ; l≤(np-1) ; l++)
                 si(tab_d[l]=1)
                 alors
                    tab_d[l] = 0
                    S++
                    tab_p[np] = 1
                    tab_d[np] = 1
                    fnc(tab_p[],tab_d[],S) //La récursion
                 fin-si
              fin-pour
           fin-si
        fin-pour
     fin-pour
]]>
Sun, 06 Dec 2009 22:17:06 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3121709#p3121709
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3121540#p3121540 Où est la récursivité ?
Dans le cas avancé, le plus simple est de ne pas passer les tableaux en paramètre de la fonction mais de profiter du fait qu'ils soient accessibles depuis ta fonction (une histoire de portée).
Pourquoi ne pas les passer en paramètre : tout simplement parce que ce serait se compliquer la vie. le fait de passer un tableau en paramétre est particulier en bash puisque chaque valeur du tableau correspond à un argument. Donc à moins de passer également le nombre de valeur se trouvant dans les tableaux, tu risques de galérer pour retrouver tes petits (à moins que leur longueurs soient toujours fixes).

]]>
Sun, 06 Dec 2009 21:15:04 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3121540#p3121540
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3121252#p3121252 Je vous tape l'algo' : ça sera mieux qu'un long, fastidieux et hasardeux discours d'un petit programmeur.

VARIABLES:
     int tab_p[11], tab_d[11] // tableaux de onze valeurs numérotées de 0 à 10
     int i //index pour les boucles
     int S //résultat de la fonction

FONCTION:
     int fnc(int tab_p[], int tab_d[], S) // la fameuse fonction
          //Un truc bidon
          pour(i = 0 ; i≤10 ; i++)
             S += tab_p[i]
             S += tab_d[i]
          fin-pour
     fin-fonction

PROGRAMME PRINCIPAL:
     //initialisation
     pour(i=0 ; i≤5 ; i++)
        tab_d[i]=1
        tab_p[i]=1
     fin-pour
     pour(i=6 ; i≤10 ; i++)
        tab_d[i]=0
        tab_p[i]=0
     fin-pour
     S = 0
     //affichage du résultat obtenu par la fonction fnc en traitant toutes les valeurs des deux tableaux tab_p[] et tab_d[]
     afficher«fnc(tab_p[],tab_d[], S)»
]]>
Sun, 06 Dec 2009 19:30:54 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3121252#p3121252
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3120841#p3120841 VivienD a écrit :

Bonsoir,

Dans la série "C'est possible, ça ? O.O" :
18-
J'ai une fonction à faire en bash (une chouette histoire de récursion, ma foi…) mais je dois travailles des tableaux venant de l'extérieur de la fonction. C'est possible ?

oui.
mais décris ton soucis plus précisément.

]]>
Sun, 06 Dec 2009 17:12:15 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3120841#p3120841
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3120093#p3120093 En fait je traite des tableaux dans le programme principal. À un moment le programme appelle une fonction qui doit travailler avec ces tableaux.

]]>
Sun, 06 Dec 2009 12:16:52 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3120093#p3120093
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3119315#p3119315 Pour recuperer la valeure de la tape sur le clavier sans que ça s'affiche :

read -n1 -s
echo $REPLY
]]>
Sat, 05 Dec 2009 23:22:46 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3119315#p3119315
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3119049#p3119049 Bonsoir,

Dans la série "C'est possible, ça ? O.O" :
18-
J'ai une fonction à faire en bash (une chouette histoire de récursion, ma foi…) mais je dois travailles des tableaux venant de l'extérieur de la fonction. C'est possible ?

]]>
Sat, 05 Dec 2009 20:50:17 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3119049#p3119049
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3093453#p3093453
sed -f fichier_sed

Il doit donc parfaitement être possible de faire un fichier sed exécutable. Jamais testé.
En mettant

#!/bin/sed -f
]]>
Tue, 24 Nov 2009 20:14:15 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3093453#p3093453
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3092754#p3092754 Bonsoir,

Dans la série "C'est possible, ça ? O.O" :
17-
Je voudrais juste savoir s'il est possible de faire de faire 100% pur sed (avec une en-tête du genre « #!/bin/sed »). Si c'est le cas, j'aimerais avoir un exemple comparatif (pas grave si l'exemple est bateau) de syntaxe entre une commande sed inséré dans un script bash et la même commande dans un script sed.

]]>
Tue, 24 Nov 2009 16:22:51 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3092754#p3092754
<![CDATA[Réponse à : Questions d'un novice en script]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=3051390#p3051390 Oui, possible, je comptais te laisser chercher, mais vu que j'ai eu du mal, voilà une possibilité :

sed -e '^s/\([^,]*,\)\{2\}\(.*\),.*$/\\textbf{\2} \\\\/g' /tmp/test

Explications :
\([^,]*,\)\{2\} : parcours la chaine tant qu'une virgule n'a pas été trouvée, quand on en trouve une il faut lui dire de passer après, d'où la deuxième virgule. On répète cette action 2 fois, ce qui nous amène à la 3ème colone.
\(.*\) : on capture ce qui nous intéresse
,.* : on s'arrête à la virgule suivante (cad la 3ème ici)

Il y a sans doute plus propre, mais ça fonctionne bien.

]]>
Sun, 08 Nov 2009 19:22:30 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=3051390#p3051390