aide commande bash (encore re:calcul d'expression mathématique) - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 24-02-2003 à 12:07:43
j'avais fait un tomic sur la conversion en minuscule, ca doit s'approcher pour la conv en majuscule
de plsu tu devrai trouver ce qu'il te faut pr n'avoir que le nom du prog dnas ce meme topic
Marsh Posté le 24-02-2003 à 12:14:49
nom=$(echo ${0##*/}|tr a-z A-Z)
Marsh Posté le 24-02-2003 à 12:54:47
J'ai un autre problème:
voici une partie du script:
CONF_PARA="$NAME""_CONF" |
la première commande en sed (SMB_DMZ) marche parfaitement (j'en avais ch... pour la trouver )
Elle permet d'aller chercher dans le fichier CONF_FILE (variable) l'occurence "SMB_DMZ=paramètre" et de récupérer "paramètre".
La deuxième est identique (occurence en SMB_CONF avec NAME="SMB" ) mais je remplace SMB_DMZ par une variable. Et là cela ne marche plus, il ne ressort qu'une chaine vide.
Une idée?
Marsh Posté le 24-02-2003 à 13:08:50
Bobor a écrit : J'ai un autre problème:
|
trop compliqué ! ton premier sed est simplement un grep !
pour le 2ème cas c'est passke ton $CONF_PARA est entre single quotes, il n'est donc pas interprété.
sinon :
|
Marsh Posté le 24-02-2003 à 13:46:44
Bobor a écrit : je voudrais récupérer dans un script bash le nom du programme lui-même. Il y a bien la variable $0 mais cette variable insère également le chemin, or je veux que le nom du fichier: |
basename $0
C'est la _vrai_ commande bash (c'est juste plus propre/lisible quoi...)
Marsh Posté le 24-02-2003 à 13:58:32
e_esprit a écrit : |
ah ben non, justement, basename c'est pas bash !
Marsh Posté le 24-02-2003 à 14:07:03
Oups, c'est vrai, j'ai dis une grosse connerie...
C'est une commande système... sorry !!!
Marsh Posté le 24-02-2003 à 14:08:12
e_esprit a écrit : Oups, c'est vrai, j'ai dis une grosse connerie... |
disons que basename c'est plus portable !
Marsh Posté le 24-02-2003 à 20:51:54
bah j'apprends des choses!
pour ma commande "compliquée", je la garde car elle a fait ses preuves
Maintenant nouveau problème:
j'ai une variable RATE=1/2
une VARIABLE UPLINK=128
je souhaite calculer le résultat
RES=$RATE*$UPLINK
mais suivant mes essais avec des {}, [], "" et autres joyeusetés j'ai soit la chaîne "1/2*128" soit 0.
Encore un peu d'aide?
Marsh Posté le 25-02-2003 à 01:09:17
je crois que pour les expressions mathematiques en bash c est du genre :
Code :
|
et il me semble que les variables doivent etre des entiers , neanmooins dans ton cas ca marche le resultat RES etant un entier
Marsh Posté le 25-02-2003 à 01:18:12
j'ai trouvé. Effctivement, le résultat est un entier. Donc j'ai inversé les 2 variables et tout roule: RES=$(($i*$j))
Marsh Posté le 27-02-2003 à 11:35:36
Bobor a écrit : |
Marsh Posté le 24-02-2003 à 12:05:12
je voudrais récupérer dans un script bash le nom du programme lui-même. Il y a bien la variable $0 mais cette variable insère également le chemin, or je veux que le nom du fichier:
echo "$0"
/rep/nom
et moi je veux "nom"
comment le récupérer sous bash?
Ensuite, je voudrais le convertir en majuscule. Comment faire?
Message édité par bobor le 24-02-2003 à 23:19:26
---------------
Gitan des temps modernes