Demande de création script bash curl

Bonjour à tous, je suis débutant dans dans les cripts en bash et j’aurais voulu savoir si ça serais possible de m’aider à le construire ?

Avec le paquet Curl je voudrais faire un questionnaire de téléchargement :

Ex. :
pi@raspberry ~# : Quel est votre chemin de destination ?
pi@raspberry ~# : « /chemin/du/dossier »
pi@raspberry ~# : Quel est le nom du fichier ?
pi@raspberry ~# : « nom-du-fichier.zip »
pi@raspberry ~# : Quel est l’URL ?
pi@raspberry ~# : « https://example.com/nom-du-fichier.zip »
pi@raspberry ~# : téléchargement du « nom-du-fichier.zip » dans « /chemin/du/dossier/ » en cours…

Bonjour:
le site https://www.quennec.fr/trucs-astuces/systèmes/gnulinux/programmation-shell-sous-gnulinux/les-bases-de-la-programmation-shell/la-commande-read
m’a permis de tester cette ligne de commande:
read -p " Camino? " CheminDeDestination # c’est l’option de read à activer
Camino?its al long way
sh-4.1$ echo $CheminDeDestination
its al long way.

voilà pour read (gère le dialogue)
Pour curl : c’est vous l’expert…

Edité " désigne un délimiteur de chaine (3 fait l’affaire avec clavier français)
Edité: vous voyez que read ne protège pas contre les fautes de frappe.
et il y a un petit point de détail: curl n’est pas un paquet (ensemble de logiciels, de doc, d’images gérés par le téléchargeur Debian/mandriva/Fedora) mais un programme aspirant avec talents les fichiers. Un puriste peut être horrifié, et traumatisé au point d’être incapable de résoudre la partie triviale -le dialogue- de votre problème qui reprèsente les 3/4 de la difficulté. Il suffit a priori de lire https://curl.haxx.se/docs/manual.html (si on n’a pas curl sur son PC, comme moi) pour avoir le chainon manquant

Oui c’est assez difficile de résoudre ma question, mais je cherche également de mon côté à la solution. Par contre j’en suis désolé mais au niveau puriste ou autre je ne cherche pas à être un pro au sujet de Linux et dans les prononciations. Je ne suis que amateur et j’essaye d’automatiser certaines commandes. Merci tout de même pour pas mal d’infos, je vais me renseigner et vous faire part de mon retour à ce sujet. Si quelqu’un d’autre arrive à trouver une solution, je m’occuperais de ma partie avec Curl et le reste du fonctionnement sans soucis

Cordialement

Je ne crois pas que ce soit difficile:
je pense avoir résolu la partie interaction (au moins en première étape: sans aucun contrôle d’existence et de droit de lecture du chemin de destination, sans retour en arrière possible)
Pour curl; je suis très content de wget (et on m’a dit que curl était mieux) qui aspire ce que je veux si besoin, aussi n’ai je pas curl. (et votre choix est judicieux)
Pour ma vacherie: je m’étais demandé pourquoi, pour au moins trois points triviaux, les gens ne répondaient pas…(alors qu’il y a des devs parmi les gens…).
PS : avez vous testé/adapté la ligne que j’ai jointe?

hello,

ce bout de code pourra, j’espère, te servir de base :

#!/bin/sh
echo "telechargement avec curl\n"
echo "saisir le chemin de destination de a forme /home/pi/rep1/"
read chemin
echo "nom du fichier destination"
read out
echo "URL a télécharger"
read in
curl $in > $chemin$out
echo " le fichier $chemin$out contient la page lu sur $in"

pour executer ce script:
. le mettre dans un fichier ( non ? sisi! )
. changer son mode : chmod +x <le fchier de script>
. l’exécuter par ./<son nom>.sh ( le .sh c’est une convention pour indiquer un fichier script sh)
si tu veux mettre ça dans une boucle, ajouter des conditions ( pour controler la syntaxe, etc.)

Je suis totalement d’accord avec vous, je vais me renseigner ce soir grâce à votre lien plus en détails.
Concernant Curl, j’utilise Curl sous Openmediavault pour le module « Openmediavault-downloader » donc c’est une habitude. Dans tous les cas j’aime bien Wget et Curl (les deux représentent la même chose)

Merci beaucoup , bof et damien pour me faire découvrir curl … qui a une documentation plus hénaurme que wget

.(OpenCV--py3) pi@raspberrypi:~/TensorFlow-Fully-Convolutional-Image-Classification $ man curl | wc
   **3562**   20920  164873
(OpenCV--py3) pi@raspberrypi:~/TensorFlow-Fully-Convolutional-Image-Classification $ man wget | wc
   **2085**   14008  105794
(OpenCV--py3) pi@raspberrypi:~/TensorFlow-Fully-Convolutional-Image-Classification $

me le confirme…
Normalement, le paramètre -p de read permet de s’affranchir d’un echo pour le dialogue
Le debut du script de bof se simplifie ainsi (voir post ci dessous)

Nota : le script simplifie est plus long que l’original parce que:
j’ai choisi de securiser un tout petit peu la saisie (creation de repertoire si besoin, sauvegarde de doublons)
j’ai mis 3 commentaires
j’ai choisi, pour ne pas avoir à retaper tout, de faire un fichier d’historique…

Comme ça, c’est mieux

#!/bin/sh
echo "telechargement avec curl\n"
read -p "Saisir le chemin de destination de la forme /home/pi/rep1/  " CHEMIN
#  si le chemin n'existe pas, le créer
[ -d $CHEMIN ] || mkdir $CHEMIN

read -p  "nom du fichier destination  " outFic
# sauvegarde de outFic si risque de doublonnage
[ -f $CHEMIN/$outFic ] && mv $CHEMIN/$outFic  $CHEMIN/$outFic.aulde
read -p "URL a télécharger " inURL
#  debuggue : ne sert plus
#  set -vx
#  recapitulatif dans fichier historique
#
echo -n  "$CHEMIN\\n$outFic\\n$inURL\\n" > $0.his
curl $inURL > $CHEMIN/$outFic
echo " le fichier $CHEMIN/$outFic contient la page lue sur $inURL"
echo "l'historique de ce vous avez saisi est dans $0.his"

Parfait, merci à vous.

concernant votre script je vais le garder précieusement car j’ai demandé aussi sur le site de raspberrypi.org et un « développeur ? » m’a également aidé à ce sujet.

Mais entre le tien et le sien je vais les mélanger pour avoir un script le plus lisible et facile.

Voici donc le lien de ma demande sur le 2 ème script :
Demande de création script bash curl

Vous ne pouvez pas savoir (il ne se l’est jamais pété comme étant un dev) :

a) s’il est un excellent développeur C

b) s’il n’a pas besoin de C

c) s’il a oublié d’installer la doc -manuels- de C, écrasant la doc de read.
En tous cas, je lui dois -et à vous aussi, bien sûr- la connaissance d’un autre paramètre de read

Nota : si vous avez des problèmes avec votre mélange, n’hésitez pas à en faire part un peu partout -c’est un script fort utile- : il n’y a rien de plus affreux que de tâtonner pour résoudre un oubli/une faute de frappe.

Ça marche pas de soucis, je vous en ferais part si besoin