#1 Le 30/07/2015, à 15:22
- RoKN
Besoin d'aide pour un script bash
Bonjour !
Je me suis lancé dans l'écriture d'un script bash qui a pour seul but existentiel de scanner les images d'un dossier, d'uploader chaque image sur twitter (en utilisant twurl) et ensuite déplacer chaque image uploadée dans un dossier "uploaded".
Seulement voilà, bien que j'ai quelques bases en bash, là je rencontre quelques difficultés notamment dans la gestion des variables et la récupération de retour de commande.
Je m'explique :
Pour uploader avec twurl, il faut d'abord entrer une commande "d'annonciation" qui retourne un ID, ID qui servira à l'upload final (je me suis aidé de ce post) :
$ twurl -H upload.twitter.com "/1.1/media/upload.json" -f ~/Desktop/B05iXOYCUAAGns4.jpg_large.jpg -F media -X POST
ce qui retourne :
{
"image": {
"w": 1024,
"h": 576,
"image_type": "image/jpeg"
},
"media_id": 588185299844370432,
"media_id_string": "588185299844370432",
"size": 105489
}
Il faut ensuite utiliser "media_id_string" pour finaliser l'upload :
twurl "/1.1/statuses/update.json" -d "media_ids=588185299844370432&status=Sample Tweet with media_ids and twurl"
Le fonctionnement du script :
- Toutes les X minutes (ou secondes), scanner le dossier et comptabiliser le nombre d'images présentes,
- Créer un tableau de taille égal au nombre d'image présente et envoyer dans chaque case le nom d'une image (qui sera nommée genre "157845.jpg", "22684.jpg", ...)
- Initialiser une variable "IMAGE" qui sera une des images prise au hasard et qui sera utilisée pour être envoyée,
- entrer la première commande de Twurl,
- récupérer l'ID de l'image,
- finaliser l'envoi avec la deuxième et dernière commande de twurl.
Voilà. Pour le moment je sèche totalement sur l'inclusion d'une variable dans une commande composée, mais j'imagine que ça se passe comme cela (?) :
$ IMAGE=/home/user/Images/machin.jpg
$ twurl -H upload.twitter.com "/1.1/media/upload.json" -f $IMAGE -F media -X POST
Pour le reste, j'ai besoin d'aide...
Merci beaucoup par avance !
Dernière modification par RoKN (Le 30/07/2015, à 16:10)
On dit "chiffrer" : https://chiffrer.info/
Hors ligne
#2 Le 30/07/2015, à 15:49
- erresse
Re : Besoin d'aide pour un script bash
Bonjour,
C'est quoi pour toi tes "[ b ]" et "[ / b ]" qui encadrent IMAGE ???
(Dans le forum ce sont les balises pour "gras", mais dans un script ?)
Sinon, cela excepté, oui, c'est bien ainsi qu'on passe une variable dans le script :
variable="machin bidule tartemprion"
echo variable contient "${variable}"
note: l'utilisation des guillemets encadrant la citation de la variable permet de prendre en compte d'éventuels espaces contenus...
Dernière modification par erresse (Le 30/07/2015, à 15:50)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#3 Le 30/07/2015, à 16:15
- RoKN
Re : Besoin d'aide pour un script bash
C'est quoi pour toi tes "[ b ]" et "[ / b ]" qui encadrent IMAGE ???
Oups, je les aient rajoutées dans le post pour faire ressortir, mais entre les balises ça marche pas, c'est corrigé
Je suis en train de tester tout un tas de solutions pour ne serait-ce que retourner un int correspondant au nombre de fichiers présents.
Je suis tombé sur ça :
for file in $VARIABLE
do
# actions a effectuer...
done
mais cette condition ne doit pas s'exécuter lorsqu'il n'y a pas de fichier .jpg dans le dossier.
J'essaye donc :
if [ $(test -e *.jpg) != 0 ]; then
for file in $VARIABLE
do
mv $file ./fichier
done
else
echo "nan rien"
fi
Mais ça ne marche pas :
ls: impossible d'accéder à *.jpg: Aucun fichier ou dossier de ce type
./test.sh: ligne 8 : [: != : opérateur unaire attendu
nan rien
On dit "chiffrer" : https://chiffrer.info/
Hors ligne
#4 Le 30/07/2015, à 16:34
- erresse
Re : Besoin d'aide pour un script bash
Je ne saurais trop t'inviter à te documenter sur l'écriture des script shell, il te manque trop de bases pour t'en sortir...
Regarde ici pour voir les commandes, la gestion de tableau, etc...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#5 Le 30/07/2015, à 19:15
- RoKN
Re : Besoin d'aide pour un script bash
Ouais c'est vrai qu'il me manque des bases et j'ai vachement de mal avec la syntaxe bash, va savoir pourquoi...
J'arrive a me débrouiller en C et un peu en Python, mais alors bash...
On dit "chiffrer" : https://chiffrer.info/
Hors ligne