Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink

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 wink

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