#1 Le 10/01/2012, à 11:04
- sonn2
[RESOLU]question sur vos habitudes de codage
Bonjour
Je suis en train d'apprendre le shell depuis 2 jours et je me fait un petit script pour faire plusieurs actions différentes, donc j'ai utiliser des fonctions pour les définir, mais je me demande si les scripts shell utilise beaucoup des fonctions ? sinon il risque d'y avoir des confits
Donc voilà est-ce que bcp de vos script utilise des fonctions?
Voilà mon petit code si ça interesse (soyez indulgent je commence et je prefere les scripts aéré, je me repère mieux chacun code à sa manière
)
[script supprimer car trop ancien et mal fait ]
Dernière modification par sonn2 (Le 11/01/2012, à 14:15)
#2 Le 10/01/2012, à 11:20
- HP
Re : [RESOLU]question sur vos habitudes de codage
fonction_01 à fonction_09 ! Comment dire… c'est brillant ! Je n'y aurais jamais pensé…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#3 Le 10/01/2012, à 11:22
- sonn2
Re : [RESOLU]question sur vos habitudes de codage
J'ai dit de pas se moquer :pleure:
#4 Le 10/01/2012, à 14:02
- sputnick
Re : [RESOLU]question sur vos habitudes de codage
Il existe un tunnel obscur dans la lumière infinie. Lao-Tseu
https://sputnick.fr
Hors ligne
#5 Le 10/01/2012, à 15:18
- twocats
Re : [RESOLU]question sur vos habitudes de codage
function fonction_01
{
pwd
}
function fonction_02
{
ls
}
M'enfin...
La réponse est 42
Hors ligne
#6 Le 10/01/2012, à 17:42
- sonn2
Re : [RESOLU]question sur vos habitudes de codage
><" les mecs! c'était pour des tests!!!
J'voudrais faire un script de connexion ssh, un autre pour sauvegarde intelligente, tri automatique des fichiers... bref des scripts plus gros que "ls"
Mais c'est pas la question du sujet!
Je voulait savoir si vous, vous utilisez des fonctions dans vos scripts! ><"
(aurais pas du poster le script...)
#7 Le 10/01/2012, à 19:07
- kamui57
Re : [RESOLU]question sur vos habitudes de codage
ça dépend, par exemple
ERROR=1
OK=0
# test if positive integer
isinteger(){
if [ $# -eq 1 ]
then
if [ -z "$(echo $1 | sed s/[0-9]*//)" ]
then echo $OK
else echo $ERROR
fi
fi
}
# random integer in the range between min and max
randomint(){
if [ $# -eq 2 ]
then
if [ $(isinteger $1) -eq $OK ]
then min=$1
else echo "Minimal seconds number is not an integer"
fi
if [ $(isinteger $2) -eq $OK ]
then max=$2
else echo "Maximal seconds number is not an integer"
fi
echo $(($min + $RANDOM % ($max - $min + 1)))
else
echo $ERROR
fi
}
Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console
Hors ligne
#8 Le 10/01/2012, à 19:33
- Bousky
Re : [RESOLU]question sur vos habitudes de codage
for fichier in `ls`
Jamais au grand jamais !
1) Il vaut mieux utiliser $(…) que `…` en bash.
2) Si tu as un nom de fichier contenant un espace, ça va planter (sans parler des retours à la ligne qui sont aussi autorisés dans un nom de fichier).
for fichier in *
Ça marche dans tous les cas et c'est moins gourmand en ressources.
[ -n $mdp ]&&[ $mdp != $s_mdp ]
Si mdp ou s_mdp contient un espace ou est vide, ça va planter :
[ -n "$mdp" ]&&[ "$mdp" != "$s_mdp" ]
while [ 1==1 ]
Il est plus efficace d'utiliser « true » ou « : » qui lui est équivalent :
while true
while :
[ $quitter == "o" ]
Si quitter contient un espace, ça plante, il faut mettre des guillemets. À l'inverse, ils ne servent à rien autour de « o » :
[ "$quitter" == o ]
@kamui57 :
isinteger () { [[ "$1" =~ ^[0-9]+$ ]] ; }
…
if isinteger "$1"
Je n'utilise des fonctions que pour ce qui est utilisé plusieurs fois ou ce qui peux être changé régulièrement pour ne pas avoir à me replonger dans tout le temps à chaque fois.
Dernière modification par Bousky (Le 10/01/2012, à 19:36)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#9 Le 10/01/2012, à 20:23
- sonn2
Re : [RESOLU]question sur vos habitudes de codage
Merci Bousky de ta réponse je n'ai pas encore toutes les subtilités du bash en tete
je vais apporter les modifications que tu m'as dit
Pour conclure je vais considerer que l'utilisation des fonctions n'est pas présentes dans la plupart des scripts, et si cela est fait je m'arrangerais
j'en aurais bien profitais pour vous poser une autre question mais bon je vais chercher avant de demander
Dernière modification par sonn2 (Le 10/01/2012, à 20:30)