lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Trop d'arguments dans mon bash


From: Philippe Neyrat
Subject: Re: Trop d'arguments dans mon bash
Date: Mon, 25 Jun 2012 12:46:48 +0200
User-agent: SquirrelMail/1.5.2 [SVN]

Le Dim 24 juin 2012 13:51, legoss a écrit :
> Bonjour à tous,

Bonjour !

>
>
> Je me suis mis au "bash" pour la première fois hier et je suis content de
>  moi. C'est rare. Sous ubuntu j'ai réalisé le fichier bash ci dessous.
> http://lilypond-french-users.1298960.n2.nabble.com/file/n7578151/bash bash
>  Pour le lancer: ouvrir la console dans le dossier où vous aurez
> téléchargé le fichier, puis saisir: *bash bash* (le premier "bash" pour la
> commande, le second pour le fichier)
>
> Je rencontre une anomalie que je résumerai ainsi
> Dans les environnements de condition (if... fi), à chaque fois que je fais
>  appel à une variable contenant *plusieurs* mots, la console me retourne
> un message d'erreur du type *bash: ligne 102 : [: trop d'arguments*
> (Aucune anomalie si les variables n'ont qu'un seul mot.)
>

J'ai parcouru votre script, et j'ai quelques remarques :
1°) - Que se passe-t-il si vous avez plus de huit strophes ?
      Une structure for serait plus adaptée, du genre :
      combien de strophes ? -> Nbstrophes
      de 1 à Nbstrophes faire :
      lire les paroles de la strophe.
Ce qui vous affranchirait d'un nombre maximal fixé à 8

2°) - De même pour les structures addlyrics, avec tous ces if...elif,
essayez plutôt une boucle for en fonction du nombre de strophes...

3°) - Vos noms de variables ne doivent pas contenir d'espace (qui est un
séparateur). Si vous voulez manipuler des chaînes de caractères contenant
des espaces, ou des caractères spéciaux, mettez un antislash avant, comme
vous l'avez fait en début de fichier :
relative='\\relative', encore que j'aurais plutôt écrit :
relative="\\relative", avec des guillemets...

de même, un nom de fichier peut être :

Nom\ de\ fichier\ contenant\ des\ espaces

Essayez dans une console pour voir les résultats avec \(, \\, etc...

par exemple :
touch Nom\ avec\(parentheses\)
touch Nom\ avec\*autres\$
(attention, avec \\, on crée plusieurs fichiers...)

Ceci ne concerne que les noms de fichiers, les variables ne doivent pas
contenir d'espaces ou de caractères spéciaux, encore moins des caractères
accentués.

Sinon, c'est un bon début pour quelqu'un qui découvre le bash...

Mais ne nommez pas votre fichier "bash", c'est un nom d'interpréteur, et
vous pourriez rencontrer des problèmes...

Cordialement,

Philippe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]