Pages : 1
#1 Le 28/04/2010, à 19:46
- 2F
[bash] conditions [résolu]
Bonjour,
j'utilise un script fait pour le taff qui permet d'utiliser winexe avec la suite pstools pour pouvoir faire à distance un maximum de choses et éviter de se déplacer
le script est fonctionnel mais je voudrais le "dépersonnaliser" de son environnement pour qu'il puisse servir à tout le monde.
c'est presque fini (enfin on pourra toujours rajouter des fonctions sachant que ces outils permettent de faire quasiement tout sur une machine win distante) mais je bloque sur une boucle qui vérifie l'extension du fichier et lance la commande voulu :
"$script")
#choix du fichier script
file=$(zenity --entry --title="Gdiag" --text="Nom du script dans le dossier $serveur");
#vérifie l'extension du fichier
ext=`echo $file | grep -o '\.[^.]*$'`
if [ "$ext" = ".bat" ];
then
winexe -U "$target"/administrateur%$mdp //"$target" "cmd /k start \\\\"$serveur"\\"$file" & exit" | zenity --progress --pulsate --auto-close && echo "$file lancé sur $target" | zenity --text-info --title="Lancement de $file sur $target" --width 400 --height 200
if [ "$ext" = ".vbs" ];
then
winexe -U "$target"/administrateur%$mdp //"$target" "cmd /k cscript \\\\"$serveur"\"$file" & exit"" | zenity --progress --pulsate --auto-close && echo "$file lancé sur $target" | zenity --text-info --title="Lancement de $file sur $target" --width 400 --height 200
else echo "$file" && echo "$ext"
fi
;;
ma syntaxe n'a pas l'air bonne (juste pour les if et then, le reste focntionne), je débute encore
merci de votre aide
Dernière modification par 2F (Le 28/04/2010, à 23:11)
Hors ligne
#2 Le 28/04/2010, à 19:48
- sputnick
Re : [bash] conditions [résolu]
ext="${file##*.}"
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#3 Le 28/04/2010, à 19:52
- 2F
Re : [bash] conditions [résolu]
merci, quelle rapiditée
mais la vérification de l'extension fonctionne et $ext prends bien la valeur souhaité (.bat)
c'est la boucle, il me dit que ;; ou fi ne lui plaît pas
ou alors je ne comprends pas ce que tu veux dire ;(
Dernière modification par 2F (Le 28/04/2010, à 19:52)
Hors ligne
#4 Le 28/04/2010, à 20:01
- sputnick
Re : [bash] conditions [résolu]
Il faut :
- indenter pour la lisibilité, c'est primordial ( pour toi et les autres )
- donner l'erreur précise ( copier coller dans les balises code )
- expliquer à quoi tu t'attends
- mettre le script complet
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#5 Le 28/04/2010, à 20:12
- 2F
Re : [bash] conditions [résolu]
ah
1- je pensais que c'était suffisament commenté sachant que c'est un problème de boucle simple avec if, then et que donc le reste ne compte pas.
2- l'erreur :
gdiag: 143: Syntax error: ";;" unexpected (expecting "fi")
3- je m'attends à ce qu'il n'y ai pas d'erreur
Dernière modification par 2F (Le 28/04/2010, à 23:14)
Hors ligne
#6 Le 28/04/2010, à 20:29
- toto2006
Re : [bash] conditions [résolu]
http://abs.traduc.org/abs-fr/ch07.html
sinon tu peux faire
[[ "$ext" == ".bat" ]] && {
winexe -U "$target"/administrateur%$mdp //"$target" "cmd /k start \\\\"$serveur"\\"$file" & exit" | zenity --progress --pulsate --auto-close && echo "$file lancé sur $target" | zenity --text-info --title="Lancement de $file sur $target" --width 400 --height 200
}
[[ "$ext" == ".vbs" ]] && {
winexe -U "$target"/administrateur%$mdp //"$target" "cmd /k cscript \\\\"$serveur"\"$file" & exit"" | zenity --progress --pulsate --auto-close && echo "$file lancé sur $target" | zenity --text-info --title="Lancement de $file sur $target" --width 400 --height 200
} || echo "$file" "$ext"
Hors ligne
#7 Le 28/04/2010, à 20:40
- 2F
Re : [bash] conditions [résolu]
@toto2006, merci pour la correction et pour la doc. je vais tester ça
Dernière modification par 2F (Le 28/04/2010, à 20:41)
Hors ligne
#8 Le 28/04/2010, à 21:47
- sputnick
Re : [bash] conditions [résolu]
L’indentation est l’action qui permet d’ajouter des caractères de tabulations ou d’espaces dans un fichier texte.
Très souvent utilisée en programmation, elle rend le code source plus clair et plus lisible. Il existe plusieurs styles d’indentation et des outils comme la commande Unix indent qui permettent d’automatiser cette tâche de refactoring. La plupart des éditeurs de texte pour programmeurs prennent également en charge cette opération. Par exemple, avec l’éditeur de texte Vim, on se rendra à la première ligne à indenter, tapera « = » et se rendra à la dernière ligne à indenter, par exemple, on tapera 1G=G pour indenter tout le document.
CF => http://fr.wikipedia.org/wiki/Indentation
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#9 Le 28/04/2010, à 21:56
- 2F
Re : [bash] conditions [résolu]
@sputnick merci pour ton aide pour le cours de français
Hors ligne
#10 Le 28/04/2010, à 22:30
- sputnick
Re : [bash] conditions [résolu]
C'est pas du français, c'est des règles de bases pour développer et pour demander de l'aide proprement
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#11 Le 28/04/2010, à 23:10
- 2F
Re : [bash] conditions [résolu]
@sputnick, no comment, je débute j'ai précisé et tu as raison c'est pas du français, c'est du vocabulaire. Et j'apprends que c'est une règle de base.
En tout cas, merci d'avoir fait avancer le débat. Aucune solution ni aide proposée.
Résolu
Dernière modification par 2F (Le 28/04/2010, à 23:13)
Hors ligne
Pages : 1