Makefile et Here document/string

Le
Lucas Levrel
Bonjour,

Pour passer des commandes à ftp je fais :
ftp serveur <<<$'put toto bye'
ou
ftp serveur <<EOT
put toto
bye
EOT

Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ?

Je n'arrive pas à le faire (je connais mal la syntaxe des Makefile, leurs
séquences d'échappement, etc.), pouvez-vous m'aider ?

Merci.
--
LL
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
xavier
Le #24312811
Lucas Levrel
Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ... ?



Pourquoi ne pas utiliser un outil comme curl ou wget ?

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Alain Montfranc
Le #24313301
Xavier a émis l'idée suivante :
Lucas Levrel
Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ... ?



Pourquoi ne pas utiliser un outil comme curl ou wget ?



+1
Lucas Levrel
Le #24315971
Le 10 mars 2012, Xavier a écrit :

Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ... ?



Pourquoi ne pas utiliser un outil comme curl ou wget ?



Je n'ai pas l'impression que wget fasse de l'upload.

Quant à curl, le man fait près de 2000 lignes et n'a pas d'exemple.
Pourriez-vous me donner la syntaxe pour uploader un fichier ? Merci.

Enfin, si quelqu'un a la réponse à la question initiale, ça m'intéresse
aussi :-) (Y'a pas que ftp dans la vie !)

--
LL
Damien Wyart
Le #24316431
* Lucas Levrel
Je n'ai pas l'impression que wget fasse de l'upload.



Tu peux essayer wput.

Quant à curl, le man fait près de 2000 lignes et n'a pas d'exemple.
Pourriez-vous me donner la syntaxe pour uploader un fichier ? Merci.



Il s'agit de l'option -T

--
DW
Lucas Levrel
Le #24316641
Le 12 mars 2012, Damien Wyart a écrit :

Quant à curl, le man fait près de 2000 lignes et n'a pas d'exemple.
Pourriez-vous me donner la syntaxe pour uploader un fichier ? Merci.



Il s'agit de l'option -T



Merci. Comme il mettait trois plombes (minutes en fait) avant de démarrer
le transfert qui dure 10 secondes, j'ai dû fouiller le man pour trouver la
combinaison magique :
curl -n -P - --disable-eprt -T fichier serveur

Comme quoi une section d'exemples aurait été bienvenue !

Peut-être wput aurait été plus simple ? (Pas testé car il n'est pas
installé, donc j'ai commencé par essayer curl.)

--
LL
Alain Montfranc
Le #24316761
Lucas Levrel a exposé le 12/03/2012 :
Le 12 mars 2012, Damien Wyart a écrit :

Quant à curl, le man fait près de 2000 lignes et n'a pas d'exemple.
Pourriez-vous me donner la syntaxe pour uploader un fichier ? Merci.



Il s'agit de l'option -T



Merci. Comme il mettait trois plombes (minutes en fait) avant de démarrer le
transfert qui dure 10 secondes, j'ai dû fouiller le man pour trouver la
combinaison magique :
curl -n -P - --disable-eprt -T fichier serveur

Comme quoi une section d'exemples aurait été bienvenue !

Peut-être wput aurait été plus simple ? (Pas testé car il n'est pas installé,
donc j'ai commencé par essayer curl.)



Ceci dit, FTP est un protocole pourri. Remplacez le par un sftp ou un
rsync si vousen avez la possibilité...
Tonton Th
Le #24316821
On 03/11/2012 09:44 PM, Lucas Levrel wrote:

Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ... ?



Pourquoi ne pas utiliser un outil comme curl ou wget ?



Je n'ai pas l'impression que wget fasse de l'upload.



Tu peux aussi regarder la gamme ncftp, et plus
particulièrement ncftpput.


--

Nous vivons dans un monde étrange/
http://foo.bar.quux.over-blog.com/
naddy
Le #24318181
Lucas Levrel
ftp serveur <<EOT
put toto
bye
EOT

Je voudrais le mettre dans un Makefile :
ftp : toto
ftp serveur ... ?



C'est impossible. Un here document consiste de plusieurs lignes,
mais make(1) passe toujours une seule ligne au $SHELL.

Si on met

ftp : toto
ftp serveur <<EOT
put toto
bye
EOT

make essaiera d'exécuter

sh -c 'ftp serveur <<EOT'
sh -c 'put toto'
sh -c 'bye'
sh -c 'EOF'

Je n'arrive pas à le faire (je connais mal la syntaxe des Makefile, leurs
séquences d'échappement, etc.), pouvez-vous m'aider ?



On peut couper des lignes longues...

ftp : toto
ftp serveur <<EOT
put toto
bye
EOT

... mais ça donne

sh -c 'ftp serveur <<EOT put toto bye EOT'

Il faudrait une séquence d'échappement pour insérer un saut de
ligne, mais ça n'existe pas.


Cependant, il est possible d'utiliser un autre outil qui permet
d'insérer des sauts de ligne, p. ex. printf(1):

ftp : toto
printf 'put totonbyen' | ftp serveur

ou

COMMANDES = 'put toton
byen'

ftp : toto
printf $(COMMANDES) | ftp serveur

--
Christian "naddy" Weisgerber
naddy
Le #24318171
Xavier
> Je voudrais le mettre dans un Makefile :
> ftp : toto
> ftp serveur ... ?

Pourquoi ne pas utiliser un outil comme curl ou wget ?



Il y a aussi le fichier ~/.netrc.

--
Christian "naddy" Weisgerber
Lucas Levrel
Le #24319561
Le 12 mars 2012, Christian Weisgerber a écrit :

make(1) passe toujours une seule ligne au $SHELL.

Il faudrait une séquence d'échappement pour insérer un saut de
ligne, mais ça n'existe pas.



C'est bon à savoir !

Cependant, il est possible d'utiliser un autre outil qui permet
d'insérer des sauts de ligne, p. ex. printf(1):

ftp : toto
printf 'put totonbyen' | ftp serveur



Merci !

--
LL
Publicité
Poster une réponse
Anonyme