Forum Programmation.shell ncftp en ligne de commande : login contenant un tiret, possible ?

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-1
25
jan.
2013

Bonjour,

Savez-vous s'il faut utiliser une syntaxe spéciale avec ncftp lorsqu'on utilise un login ou mot de passe contenant un tiret ?

J'ai modifié récemment un script qui contenait la ligne suivante :

ncftp -LOGIN -PASS ftp.plop.com << EOF

Cela fonctionnait sans problème.
Hors j'ai tenté de l'adapter au nouveau mot de passe choisi par l'administrateur de plop.com : LOG-IN au lieu de LOGIN et ça coince.

Cela donne donc :

ncftp -LOG-IN -PASS ftp.plop.com << EOF

J'ai peur que le script interprète ça comme : login=LOG & pass=IN et ne sache que faire du PASS mentionné juste après.

J'ai fouillé le man, je n'ai rien trouvé à ce propos.

PS : J'ai tenté la modification dont je parle et j'ai une erreur au lancement du script, d'où ma suspicion envers le tiret du login.

  • # Bonne syntaxe

    Posté par  . Évalué à 8.

    Salut,

    La syntaxe que tu utilises avec ncftp est bizarre (ou, au moins, je ne la connaissais pas).

    Qu'est que cela donne si tu fais ton appel comme ça ?

    ncftp -u 'LOGIN' -p 'PASSWORD' ftp.plop.com <<EOF

    • [^] # Re: Bonne syntaxe

      Posté par  . Évalué à 1.

      Je ne suis pas l'auteur d'origine du script, mais le repreneur.
      Effectivement après avoir cherché de la doc sur ncftp, j'ai trouvé des exemples ressemblant plutôt à ce que tu me proposes.
      Je n'avais pas trouvé d'exemple avec le caractère > '
      Je vais essayer cette syntaxe qui me semble être une bonne piste et dirait ce que ça a donné.

      Merci !

      • [^] # Re: Bonne syntaxe

        Posté par  . Évalué à 2.

        Ça fonctionne avec cette syntaxe, merci à tous !

        • [^] # Re: Bonne syntaxe

          Posté par  . Évalué à 1.

          Tant mieux si ça fonctionne mais c'est plus dû aux options « -u » et « -p » qu'aux apostrophes, à mon avis. Et dans tous les cas, un tiret au milieu d'un mot, si celui-ci ne contient pas d'espace, n'aurait pas dû empêcher le programme de fonctionner…

  • # Lu'

    Posté par  . Évalué à -1.

    Et en faisant :

    ncftp -LOG\-IN -PASS ftp.plop.com << EOF

    ?

    • [^] # Re: Lu'

      Posté par  . Évalué à 5.

      Ça a peu de chances de marcher parce que c'est le Shell qui va intercepter l'antislash et générer le bon caractère en conséquence avant d'appeler le programme. Et comme le tiret est un caractère régulier, on se retrouvera dans la même situation.

  • # ncftp

    Posté par  . Évalué à -3.

    ncftp -LOG-IN -PASS ftp.plop.com << EOF

    1/ Peut-être comme ceci :
    MaVar='-LOG-IN'; ncftp $MaVar -PASS ftp.plop.com << EOF

    2/ Regardez si il n'y a pas un problème du genre UTF8 alors qu'il attend peut-être des caractères iso-8859-15 ?

  • # Eurk c'est sale

    Posté par  (site web personnel) . Évalué à 4.

    Je sais que ça ne répond pas à ta question mais j'avoue détester utiliser des login et mot de passe en dur dans des scripts ou que l'on donne en argument comme ça.

    Donc si tu peux utilises plutôt du scp avec le système de clef partagé pour l'authentification qui est plus propre et largement plus simple à gérer (et puis plus de problème de - ).

    Sinon si tu veux rester en ftp je sais que la commande ftp de base de solaris gère les identifiant écrit dans un fichier .netrc dans ton home dir ce qui permet quelques facilité. Je ne sais pas si ncftp le gère mais c'est peut être aussi l'occasion de changer d'outils quitte à revoir ton script ;).

Suivre le flux des commentaires

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