Suivi - Commentaires Impossible de poster

#1465 Posté par . État de l'entrée : ouverte Licence CC by-sa
Tags : aucun
1
13
déc.
2014

Hello,
J'ai essayé de poster ce qui suit dans la discussion suivante :
https://linuxfr.org/nodes/104212/comments/nouveau

Sans succès. Erreur 500. Message « Oops, la page demandée ne peut être servie car une erreur s'est produite. L'erreur va être enregistrée, permettant à l'équipe en charge du site de la corriger… »

Merci beaucoup.

  • # Le commentaire en question

    Posté par (page perso) . Évalué à 3 (+0/-0). Dernière modification le 14/12/14 à 00:38.

    Sujet :

    toto == yes ?
    

    Contenu :

    Bonjour,
    
    Apparemment, c'est un script qui vérifie si telle ou telle bibliothèque est activée ou non dans ton système, en vérifiant pour cela s'il existe une variable d'environnement qui porte son nom et qui contienne la valeur "yes". Il a des chances que ces variables soient d'ailleurs directement issues d'un fichier de configuration contenant des paires clés/valeur du style "toto=yes" à chaque ligne.
    
    « enabled() » est le nom de la fonction définie juste en dessous de la première ligne. Ça veut dire en substance « activé » et la fonction renverra probablement un booléen servant à indiquer si ce qu'on lui passe est disponible ou pas.
    
    ${ # } est un motif proposé par bash (avec ${ ## }, ${ % } et ${ %% } ) qui va développer le contenu de la variable dont le nom est à gauche du dièse (ici "name") et qui en va supprimer le préfixe à droite (ici « lib ») s'il existe. Donc, par exemple, si « $name » contient « libToto », l'expression ${name#lib} renverra « Toto », sinon le contenu sera inchangé. Les « % » font la même chose avec les suffixes. Si tu les doubles (« ## » et « %% ») alors le préfixe ou suffixe sera supprimé autant de fois qu'il se répète. C'est pratique pour renommer des fichiers, par exemple : https://linuxfr.org/forums/astucesdivers/posts/terminal-renommer-une-s%C3%A9rie-de-fichiers-sous-unix
    
    Ce qui sort de cet élagage sera passé à la fonction.
    
    La fonction vérifie ensuite si le nom commence par « ! » et met la chaîne « != » dans la variable $op (pour « opérateur », visiblement) ou « == » dans le cas contraire (le point d'exclamation est très souvent utilisé pour implémenter l'opérateur NOT).
    
    Enfin, elle construit manuellement une expression de comparaison du style « $variable == yes » à l'aide des éléments qu'elle a construit au dessus et l'évalue. Le résultat de cette évaluation sera directement celui de la fonction. Le fait d'ajouter des « x » en préfixe est une vieille astuce des programmeurs shell : ça permet de maintenir une expression syntaxiquement correcte même si l'une des chaînes est vide.
    
  • # Test

    Posté par (page perso) . Évalué à 3 (+0/-0). Dernière modification le 14/12/14 à 00:40.

    Ce qui pose problème (sachant que les deux séparément passent) :

    ${ ## } ${ %% }
    
    NoMethodError (undefined method `inner_text=' for #<Nokogiri::XML::Element:0x0000000xxxxxx>):
      lib/ar_base_ext.rb:47:in `wikify'
      lib/ar_base_ext.rb:34:in `block in wikify_attr'
      app/controllers/comments_controller.rb:47:in `create'
    

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.