. a écrit 32 commentaires

  • [^] # Pourquoi tant de haine ?

    Posté par  . En réponse au journal #spaghettis xhtml standard, sauce javascript. Évalué à -4.

    Il vous suffisait d'ignorer le journal et éventuellement lui attribuer un moins un
    mais ce qui me choque c'est que 10 membres on apprécié votre message.

  • [^] # Re: Chez moi ça marche...

    Posté par  . En réponse au message [RÉSOLU] Bash utiliser variable dans une commande du style result=$(commande | grep $variable). Évalué à 2.

    Ah ok;
    Fait un trace alors, c'est un bon moyen de savoir ce qui se passe (et ce qui ne se passe pas) ;)

  • [^] # Re: Chez moi ça marche...

    Posté par  . En réponse au message [RÉSOLU] Bash utiliser variable dans une commande du style result=$(commande | grep $variable). Évalué à 1.

    Il y a un espace en trop

  • # Je dirais que oui

    Posté par  . En réponse au message Logiciel chiffrement . Évalué à 1.

    Salut,

    Le logiciel est open-source et le format m'a l'air bien documenté ici. Ca utilise aes-256-cbc pour le chiffrement j'imagine, qui est standard.

  • [^] # Re: .

    Posté par  . En réponse au message [RÉSOLU] Bash utiliser variable dans une commande du style result=$(commande | grep $variable). Évalué à 1.

    Je vous assure que si. Un sous-shell est un simple fork qui hérite de la quasi-totalité de l'environnement (à l'exception des traps sinon ce serait le bordel) du parent. Un sous-shell est créé via $(), (), | et & de mémoire.

    Si vous invoquez le shell directement (sh -c "…"), évidemment cela ne marche plus et dans le meilleur des cas seules les variables d'environnements seront passées à l'enfant. Pour l'export de fonctions, j'en ai jamais entendu parler. (J'utilise dash et ksh).

  • # .

    Posté par  . En réponse au message [RÉSOLU] Bash utiliser variable dans une commande du style result=$(commande | grep $variable). Évalué à 1.

    Cela m'intrigue car tous vos examples devraient fonctionner.
    Les variables (exportées ou non), les fonctions et alias du parent sont accessibles dans le sous-shell.

    Peut-être une erreur de retranscription du nom d'une variable ?
    Lancez un trace sur les examples qui ne fonctionnent pas chez vous (bash -x)

  • [^] # Re: .

    Posté par  . En réponse au message [sed] Remplacer du texte contenu dans une variable et contenant des () et *. Évalué à 1.

    Pourtant, en enlevant les apostrophes, ca fonctionne chez moi :

    sed -i -e "s/BOT_SLEEP_DELAY:$old_value/BOT_SLEEP_DELAY:$new_value/" fichier
    

    ajoute un echo devant sed pour voir le résultat de l'expansion du script sed te paraît correct.

    Attention, il faudrait échapper au moins le '&' dans le deuxième argument de s/// qui n'est pas une expression régulière mais une chaîne de substitution qui obéit à d'autres règles.

  • [^] # Re: .

    Posté par  . En réponse au message [sed] Remplacer du texte contenu dans une variable et contenant des () et *. Évalué à 1.

    Les apostrophes sont de trop.

  • [^] # Re: .

    Posté par  . En réponse au message [sed] Remplacer du texte contenu dans une variable et contenant des () et *. Évalué à 1. Dernière modification le 21 mai 2017 à 14:09.

    var=$(echo "$var" | sed 's,\.\|\[\|\*\|\^\|\$\|/\|\\,\\&,g')
    ```Voilà, j'avais oublié d'échapper le / et le \.
    
  • [^] # Re: .

    Posté par  . En réponse au message [sed] Remplacer du texte contenu dans une variable et contenant des () et *. Évalué à 1. Dernière modification le 21 mai 2017 à 13:59.

    Sinon pour échapper des caractères d'une variable :

    var=$(echo "$var" | sed 's,\.\|\[\|\*\|\^\|\$,\\&,g')
    Le '.' est aussi a échapper, ce que j'ai oubié de préciser dans mon dernier post

  • # .

    Posté par  . En réponse au message [sed] Remplacer du texte contenu dans une variable et contenant des () et *. Évalué à 2. Dernière modification le 21 mai 2017 à 06:29.

    Il faut échapper les caractères spéciaux des expressions régulières basiques : '[', '*', '^' et '$' ainsi que le caractère d'échappement lui-même et le caractère qui sépare les arguments de la commande de substitution.

    Une solution utilisant Awk et qui ne requiert par d'échappements :

    awk -F: -vOFS=:\
        -vparam_a_modifier="$param_a_modifier" \
        -vancienne_valeur="$ancienne_valeur" \
        -vnouvelle_valeur="$nouvelle_valeur"  \
          '$1 == param_a_modifier && $2 == ancienne_valeur {$2 = nouvelle_valeur} 1'
    

    Remarquez le 1 à la fin de la commande qui assure que toutes les lignes seront imprimées.

    edit: ironiquement, j'ai du échapper le ^ dans le commentaire ^^
    edit2: ne pas oublier de déclarer ':' aussi comme séparateur de champs à la sortie (OFS)

  • [^] # Re: plutot les constructeurs

    Posté par  . En réponse au message problème wifi. Évalué à 1.

    Je n'ai jamais eu de problème avec le wifi sous Linux (Atheros, Broadcom ou Intel). Et d'après cette liste, pas mal de constructeurs fournissent des drivers pour Linux, souvent sous licence libre de type GPL ou BSD:
    https://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers

  • [^] # Re: Quelques autres

    Posté par  . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 2.

    Tiens, chez moi
    $ perl -E 'say 1 >> 64'
    me retourne 1 avec perl 5.20 et 0 avec perl 5.24.

  • [^] # Re: Forcer l'utilisation de unbind globalement

    Posté par  . En réponse au message Réglage de Network Manager. Évalué à 1.

    Lire unbound et non unbind bien sûr.

  • # Forcer l'utilisation de unbind globalement

    Posté par  . En réponse au message Réglage de Network Manager. Évalué à 2.

    Bonjour,

    Je ne pense pas que ce soit possible sans modifier le code source mais une solution serait de forcer la résolution des noms de domaine via unbind d'une manière globale. Cela est possible en configurant Network Manager de sorte à ce qu'il abandonne le contrôle de /etc/resolv.conf et en déclarant l'adresse DNS de unbind dans ce fichier. Unbind sera utilisé pour toutes les connexions et les DNS fournit par les serveurs DHCP seront tout bonnement ignorés.

    Si cette solution vous intéresse, éditez le fichier /etc/NetworkManager/NetworkManager.conf et ajoutez-y une ligne dns=none dans la section [main]. J'utilise une Debian Jessie, le chemin d'accès pourrait être différent chez vous. Consultez la page de manuel NetworkManager.conf(5) pour en savoir plus.
    Mon fichier ressemble à ceci après la modification:
    ```
    [main]
    plugins=ifupdown,keyfile
    dns=none

    [ifupdown]
    managed=false
    ```Relancez le service :
    sudo service network-manager restart

    Ensuite, vous pourrez recréer le fichier /etc/resolv.conf et y placer la ligne:
    nameserver 127.0.0.1

    Attention, il existe aussi l'option dns=unbind, mais cela utilise dnsssec-trigger et si j'en crois la documentation, il commandera unbind d'utiliser les DNS fournit par le DHCP en priorité et seulement celui de unbind comme solution de secours et je ne pense pas que c'est ce que vous souhaitez.

  • [^] # Re: .

    Posté par  . En réponse au message quotacheck ne marche pas . Évalué à 4.

    Le programme échoue car il n'arrive pas à déterminer si les fichiers aquota.{user,group} sont au format vfsv0 ou vfsv1 en analysant les en-têtes, ce qui est normal puisque ces fichiers sont vides.
    Quand vfsv1 n'était pas encore implémenté, le nom du fichier seul suffisait à en determiner le format (quota.* = vfsold, aquota.* = vfsv0).

  • # .

    Posté par  . En réponse au message quotacheck ne marche pas . Évalué à 1.

    Bonjour,

    Essayez ceci : effacez les deux fichiers et demandez au programme de les créer en ajoutant l'option -c à la commande.

  • # re: Plomberie unixienne

    Posté par  . En réponse au message Plomberie unixienne. Évalué à 6.

    Bonjour,

    Ajoutez l'option -n 1 à xargs pour que la commande soit invoquée pour chaque paramètre. Sans cela, la commande ne sera pas invoquée avant que le buffer de la ligne de commande de soit rempli (2M chez moi).

  • # re: desactiver clavier

    Posté par  . En réponse au message desactiver clavier. Évalué à 8.

    Mais quelle idée d'avoir servi un verre de bière à un chien aussi ! ^^

  • [^] # Re: possible raison et nouvelle problématique

    Posté par  . En réponse au message Problème analyseur lexical flex. Évalué à 1.

    Que yytext soit de type tableau ou pointeur sur un tableau n'y changera rien. En C, la valeur d'une variable de type tableau est un pointeur sur son premier élément. Et yylex() écrasera de toute façon le tableau à chaque cycle.

    Vous devez donc dupliquer yytext dans un nouvel emplacement (p.e., avec strdup() si vous conservez le tableau de pointeurs ou strcpy() si vous optez pour un tableau de chaînes). Gardez en tête qu'en C, vous ne pouvez pas assigner ou passer en paramètre un tableau.

    Aussi, la variable chaine n'est d'aucune utilisé dans votre programme.

    Vous devriez (re-)lire le chapître 5, et particulièrement la section 5.3 (Pointeurs et tableaux) du fameux livre de K&R.

  • # re: licences

    Posté par  . En réponse au message licences. Évalué à 2. Dernière modification le 24 février 2017 à 09:55.

    Bonjour,

    Je vais tenter de répondre :
    1) votre plate-forme formera un agrégat de logiciels ayant chacun une licence propre.
    2) des tas :-)

  • # Possible raison

    Posté par  . En réponse au message Problème analyseur lexical flex. Évalué à 1. Dernière modification le 23 février 2017 à 19:01.

    Bonjour,

    Si j'ai bien vu, fonctions est traîtée comme un tableau de pointeurs sur char dans votre programme et je ne pense pas que c'est que vous aviez derrière la tête ;-)
    sizeof(chaine) retourne la taille d'un pointeur et vous assignez aux éléments du tableau la variable yytext (via word et data) qui est un pointeur sur char et dont le contenu pointé est ecrasé régulièrement par yylex().

  • [^] # Re: Echappement des apostrophes

    Posté par  . En réponse au message insertion caractères spéciaux. Évalué à 3. Dernière modification le 11 février 2017 à 10:37.

    Les backslash sont redondants dans votre solution et la commande est plus longue que celle proposée par le posteur original.

  • [^] # Re: il manque des caracteres, ou c'est une syntaxe que je ne connais pas.

    Posté par  . En réponse au message insertion caractères spéciaux. Évalué à 1.

    Préfixez la commande par \$ et cela fonctionnera parfaitement ;-)

  • [^] # Re: il manque des caracteres, ou c'est une syntaxe que je ne connais pas.

    Posté par  . En réponse au message insertion caractères spéciaux. Évalué à 1.

    Au temps pour moi. Mais j'ai tiqué car vous avez proposé une solution erronée alors que le posteur original avait bien adressé la fin du fichier dans sa commande.