KSH boucle for et paramètres
Résolu
fabien.joubert
Messages postés
35
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour
j'ai un fichier . KSH qui admait jusqu'à 4 paramètres.
Mais j'ai 4 case absolument identique ce qui me donne un code très lourd
Ne pourrais je pas raccourcir mon code avec une boucle for?
Merci d'avance a tous ceux qui me répondront
Voici le code initial sur lequel je travail.
param1=$1
param2=$2
param3=$3
param4=$4
p1=$(echo $param1 | cut -f1 -d"=")
p2=$(echo $param2 | cut -f1 -d"=")
p3=$(echo $param3 | cut -f1 -d"=")
p4=$(echo $param4 | cut -f1 -d"=")
case $p1 in
CB) basicat=$(echo $param1 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param1 | cut -f2 -d"=");;
code) basicat=$(echo $param1 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param1 | cut -f2 -d"=");;
email) mail=$(echo $param1 | cut -f2 -d"=");;
e-mail) mail=$(echo $param1 | cut -f2 -d"=");;
mail) mail=$(echo $param1 | cut -f2 -d"=");;
em) mail=$(echo $param1 | cut -f2 -d"=");;
TypServ) serv=$(echo $param1 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param1 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param1 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param1 | cut -f2 -d"=");;
TS) serv=$(echo $param1 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param1 | cut -f2 -d"=");;
typserv) serv=$(echo $param1 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param1 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param1 | cut -f2 -d"=");;
ts) serv=$(echo $param1 | cut -f2 -d"=");;
TypTach) tach=$(echo $param1 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param1 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param1 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param1 | cut -f2 -d"=");;
TT) tach=$(echo $param1 | cut -f2 -d"=");;
typtach) tach=$(echo $param1 | cut -f2 -d"=");;
typetache) tach=$(echo $param1 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param1 | cut -f2 -d"=");;
typedetache) tach=$(echo $param1 | cut -f2 -d"=");;
tt) tach=$(echo $param1 | cut -f2 -d"=")
esac
case $p2 in
CB) basicat=$(echo $param2 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param2 | cut -f2 -d"=");;
code) basicat=$(echo $param2 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param2 | cut -f2 -d"=");;
email) mail=$(echo $param2 | cut -f2 -d"=");;
e-mail) mail=$(echo $param2 | cut -f2 -d"=");;
mail) mail=$(echo $param2 | cut -f2 -d"=");;
em) mail=$(echo $param2 | cut -f2 -d"=");;
TypServ) serv=$(echo $param2 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param2 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param2 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param2 | cut -f2 -d"=");;
TS) serv=$(echo $param2 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param2 | cut -f2 -d"=");;
typserv) serv=$(echo $param2 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param2 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param2 | cut -f2 -d"=");;
ts) serv=$(echo $param2 | cut -f2 -d"=");;
TypTach) tach=$(echo $param2 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param2 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param2 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param2 | cut -f2 -d"=");;
TT) tach=$(echo $param2 | cut -f2 -d"=");;
typtach) tach=$(echo $param2 | cut -f2 -d"=");;
typetache) tach=$(echo $param2 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param2 | cut -f2 -d"=");;
typedetache) tach=$(echo $param2 | cut -f2 -d"=");;
tt) tach=$(echo $param2 | cut -f2 -d"=")
esac
case $p3 in
CB) basicat=$(echo $param3 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param3 | cut -f2 -d"=");;
code) basicat=$(echo $param3 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param3 | cut -f2 -d"=");;
email) mail=$(echo $param3 | cut -f2 -d"=");;
e-mail) mail=$(echo $param3 | cut -f2 -d"=");;
mail) mail=$(echo $param3 | cut -f2 -d"=");;
em) mail=$(echo $param3 | cut -f2 -d"=");;
TypServ) serv=$(echo $param3 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param3 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param3 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param3 | cut -f2 -d"=");;
TS) serv=$(echo $param3 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param3 | cut -f2 -d"=");;
typserv) serv=$(echo $param3 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param3 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param3 | cut -f2 -d"=");;
ts) serv=$(echo $param3 | cut -f2 -d"=");;
TypTach) tach=$(echo $param3 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param3 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param3 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param3 | cut -f2 -d"=");;
TT) tach=$(echo $param3 | cut -f2 -d"=");;
typtach) tach=$(echo $param3 | cut -f2 -d"=");;
typetache) tach=$(echo $param3 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param3 | cut -f2 -d"=");;
typedetache) tach=$(echo $param3 | cut -f2 -d"=");;
tt) tach=$(echo $param3 | cut -f2 -d"=")
esac
case $p4 in
CB) basicat=$(echo $param4 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param4 | cut -f2 -d"=");;
code) basicat=$(echo $param4 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param4 | cut -f2 -d"=");;
email) mail=$(echo $param4 | cut -f2 -d"=");;
e-mail) mail=$(echo $param4 | cut -f2 -d"=");;
mail) mail=$(echo $param4 | cut -f2 -d"=");;
em) mail=$(echo $param4 | cut -f2 -d"=");;
TypServ) serv=$(echo $param4 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param4 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param4 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param4 | cut -f2 -d"=");;
TS) serv=$(echo $param4 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param4 | cut -f2 -d"=");;
typserv) serv=$(echo $param4 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param4 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param4 | cut -f2 -d"=");;
ts) serv=$(echo $param4 | cut -f2 -d"=");;
TypTach) tach=$(echo $param4 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param4 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param4 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param4 | cut -f2 -d"=");;
TT) tach=$(echo $param4 | cut -f2 -d"=");;
typtach) tach=$(echo $param4 | cut -f2 -d"=");;
typetache) tach=$(echo $param4 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param4 | cut -f2 -d"=");;
typedetache) tach=$(echo $param4 | cut -f2 -d"=");;
tt) tach=$(echo $param4 | cut -f2 -d"=")
esac
j'ai un fichier . KSH qui admait jusqu'à 4 paramètres.
Mais j'ai 4 case absolument identique ce qui me donne un code très lourd
Ne pourrais je pas raccourcir mon code avec une boucle for?
Merci d'avance a tous ceux qui me répondront
Voici le code initial sur lequel je travail.
param1=$1
param2=$2
param3=$3
param4=$4
p1=$(echo $param1 | cut -f1 -d"=")
p2=$(echo $param2 | cut -f1 -d"=")
p3=$(echo $param3 | cut -f1 -d"=")
p4=$(echo $param4 | cut -f1 -d"=")
case $p1 in
CB) basicat=$(echo $param1 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param1 | cut -f2 -d"=");;
code) basicat=$(echo $param1 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param1 | cut -f2 -d"=");;
email) mail=$(echo $param1 | cut -f2 -d"=");;
e-mail) mail=$(echo $param1 | cut -f2 -d"=");;
mail) mail=$(echo $param1 | cut -f2 -d"=");;
em) mail=$(echo $param1 | cut -f2 -d"=");;
TypServ) serv=$(echo $param1 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param1 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param1 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param1 | cut -f2 -d"=");;
TS) serv=$(echo $param1 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param1 | cut -f2 -d"=");;
typserv) serv=$(echo $param1 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param1 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param1 | cut -f2 -d"=");;
ts) serv=$(echo $param1 | cut -f2 -d"=");;
TypTach) tach=$(echo $param1 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param1 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param1 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param1 | cut -f2 -d"=");;
TT) tach=$(echo $param1 | cut -f2 -d"=");;
typtach) tach=$(echo $param1 | cut -f2 -d"=");;
typetache) tach=$(echo $param1 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param1 | cut -f2 -d"=");;
typedetache) tach=$(echo $param1 | cut -f2 -d"=");;
tt) tach=$(echo $param1 | cut -f2 -d"=")
esac
case $p2 in
CB) basicat=$(echo $param2 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param2 | cut -f2 -d"=");;
code) basicat=$(echo $param2 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param2 | cut -f2 -d"=");;
email) mail=$(echo $param2 | cut -f2 -d"=");;
e-mail) mail=$(echo $param2 | cut -f2 -d"=");;
mail) mail=$(echo $param2 | cut -f2 -d"=");;
em) mail=$(echo $param2 | cut -f2 -d"=");;
TypServ) serv=$(echo $param2 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param2 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param2 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param2 | cut -f2 -d"=");;
TS) serv=$(echo $param2 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param2 | cut -f2 -d"=");;
typserv) serv=$(echo $param2 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param2 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param2 | cut -f2 -d"=");;
ts) serv=$(echo $param2 | cut -f2 -d"=");;
TypTach) tach=$(echo $param2 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param2 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param2 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param2 | cut -f2 -d"=");;
TT) tach=$(echo $param2 | cut -f2 -d"=");;
typtach) tach=$(echo $param2 | cut -f2 -d"=");;
typetache) tach=$(echo $param2 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param2 | cut -f2 -d"=");;
typedetache) tach=$(echo $param2 | cut -f2 -d"=");;
tt) tach=$(echo $param2 | cut -f2 -d"=")
esac
case $p3 in
CB) basicat=$(echo $param3 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param3 | cut -f2 -d"=");;
code) basicat=$(echo $param3 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param3 | cut -f2 -d"=");;
email) mail=$(echo $param3 | cut -f2 -d"=");;
e-mail) mail=$(echo $param3 | cut -f2 -d"=");;
mail) mail=$(echo $param3 | cut -f2 -d"=");;
em) mail=$(echo $param3 | cut -f2 -d"=");;
TypServ) serv=$(echo $param3 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param3 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param3 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param3 | cut -f2 -d"=");;
TS) serv=$(echo $param3 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param3 | cut -f2 -d"=");;
typserv) serv=$(echo $param3 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param3 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param3 | cut -f2 -d"=");;
ts) serv=$(echo $param3 | cut -f2 -d"=");;
TypTach) tach=$(echo $param3 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param3 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param3 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param3 | cut -f2 -d"=");;
TT) tach=$(echo $param3 | cut -f2 -d"=");;
typtach) tach=$(echo $param3 | cut -f2 -d"=");;
typetache) tach=$(echo $param3 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param3 | cut -f2 -d"=");;
typedetache) tach=$(echo $param3 | cut -f2 -d"=");;
tt) tach=$(echo $param3 | cut -f2 -d"=")
esac
case $p4 in
CB) basicat=$(echo $param4 | cut -f2 -d"=");;
CodeBasicat) basicat=$(echo $param4 | cut -f2 -d"=");;
code) basicat=$(echo $param4 | cut -f2 -d"=");;
code_appli) basicat=$(echo $param4 | cut -f2 -d"=");;
email) mail=$(echo $param4 | cut -f2 -d"=");;
e-mail) mail=$(echo $param4 | cut -f2 -d"=");;
mail) mail=$(echo $param4 | cut -f2 -d"=");;
em) mail=$(echo $param4 | cut -f2 -d"=");;
TypServ) serv=$(echo $param4 | cut -f2 -d"=");;
TypeServeur) serv=$(echo $param4 | cut -f2 -d"=");;
Type_de_Serveur) serv=$(echo $param4 | cut -f2 -d"=");;
TypedeServeur) serv=$(echo $param4 | cut -f2 -d"=");;
TS) serv=$(echo $param4 | cut -f2 -d"=");;
typeserveur) serv=$(echo $param4 | cut -f2 -d"=");;
typserv) serv=$(echo $param4 | cut -f2 -d"=");;
type_de_serveur) serv=$(echo $param4 | cut -f2 -d"=");;
typedeserveur) serv=$(echo $param4 | cut -f2 -d"=");;
ts) serv=$(echo $param4 | cut -f2 -d"=");;
TypTach) tach=$(echo $param4 | cut -f2 -d"=");;
TypeTache) tach=$(echo $param4 | cut -f2 -d"=");;
Type_de_Tache) tach=$(echo $param4 | cut -f2 -d"=");;
TypedeTache) tach=$(echo $param4 | cut -f2 -d"=");;
TT) tach=$(echo $param4 | cut -f2 -d"=");;
typtach) tach=$(echo $param4 | cut -f2 -d"=");;
typetache) tach=$(echo $param4 | cut -f2 -d"=");;
type_de_tache) tach=$(echo $param4 | cut -f2 -d"=");;
typedetache) tach=$(echo $param4 | cut -f2 -d"=");;
tt) tach=$(echo $param4 | cut -f2 -d"=")
esac
A voir également:
- KSH boucle for et paramètres
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Paramètres de confidentialité - Guide
- Idm for mac - Télécharger - Téléchargement & Transfert
5 réponses
bonjour,
cherche autour de :
cdt
cherche autour de :
for i in $1 $2 $3 $4
do
p=$(echo $i | cut -f1 -d"=")
case $p in
CB) basicat=$(echo $i | cut -f2 -d"=");;
...
...
esac
done
cdt
Salut,
Dans le même esprit que "jee pee" :
Dans le même esprit que "jee pee" :
$ cat foo.ksh
#! /bin/ksh
for param in "$@"
do
case $param in
1) echo "Le paramètre $param contient le chiffre 1"
;;
2) echo "Le paramètre $param contient le chiffre 2"
;;
5) echo "Le paramètre $param contient le chiffre 5"
;;
*) echo "Le paramètre $param ne fait pas parti de la liste..."
;;
esac
done
$ ./foo.ksh 3 5 2 7 1 0
Le paramètre 3 ne fait pas parti de la liste...
Le paramètre 5 contient le chiffre 5
Le paramètre 2 contient le chiffre 2
Le paramètre 7 ne fait pas parti de la liste...
Le paramètre 1 contient le chiffre 1
Le paramètre 0 ne fait pas parti de la liste...
$ ;-))
Merci beaucoup a vous 2
cette solution fonctionne très bien
for i in $1 $2 $3 $4
do
p=$(echo $i | cut -f1 -d"=")
case $p in
CB) basicat=$(echo $i | cut -f2 -d"=");;
...
...
esac
done
C'est la deuxième fois que je viens sur le forum de ccm est je suis trétré content de l'efficacité
merci bcp. bye
cette solution fonctionne très bien
for i in $1 $2 $3 $4
do
p=$(echo $i | cut -f1 -d"=")
case $p in
CB) basicat=$(echo $i | cut -f2 -d"=");;
...
...
esac
done
C'est la deuxième fois que je viens sur le forum de ccm est je suis trétré content de l'efficacité
merci bcp. bye
En plus, tu peux simplifier les cases :
CB) basicat=$(echo $param1 | cut -f2 -d"=");; CodeBasicat) basicat=$(echo $param1 | cut -f2 -d"=");; code) basicat=$(echo $param1 | cut -f2 -d"=");; c'est plus court en mettant CB|CodeBasicat|code) basicat=$(echo $param1 | cut -f2 -d"=");;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question