Les OR dans les IF et des calculs en Bash [ Script ] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 18-02-2004 à 01:19:13
deux=`$dix - $huit`
respecte les espaces et les quotes (ceux de la touche [7] du clavier)
Marsh Posté le 18-02-2004 à 01:21:29
avant de faire ton if là, tu fais:
if [ $# -eq 5 ];then
#ton if
else
#je c pas ce que tu veux faire
fi
Marsh Posté le 18-02-2004 à 09:17:32
riot a écrit : deux=`$dix - $huit` |
heuu je sais pas avec quel shell tu arrives à faire ça, mais en bash; il faut utiliser expr ou gawk pour évaluer els expressions arithmétiques
Pour les calcul simples, expr suffit :
deux=`expr $dix - $huit` |
sinon, c'est clair qu'il faut d'abord tester le nombre d'arguments passés !
Marsh Posté le 18-02-2004 à 09:43:29
Pour ton test il faut que tu utilises des guillemets pour encadrer la variable à substituer :
|
Une autre méthode pour tester si une variable est vide est l'opérateur éz:
|
Pour ton calcul, si tu utilise 'bash' ou 'ksh' il faut utiliser les doubles parentheses:
|
Dans le cas ou tu utilise 'sh', il te faut passer par 'expr' (ce n'est pas la seule méthode, tu peux aussi utiliser 'bc' ou 'awk')
|
Marsh Posté le 18-02-2004 à 13:23:58
bobuse>oups petit oubli... (on va dire que c t pcqu'il était tard...)
Marsh Posté le 18-02-2004 à 01:15:24
Voici mon code:
if [ $1 == "" ]||[ $2 == "" ]||[ $3 == "" ]||[ $4 == "" ]||[ $5 == "" ]
then
Si tous les arguments sont passés alors pas de problème,
si il en manque un j'ai une erreur:
line 3: [: ==: unary operator expected
Je me demmande donc comment faire en un seul IF pour tester toutes ces conditions avec des OU (||) ???
Autre chose,
j'ai deux nombres dans deux varriables:
dix=10
huit=8
comment obtenir dans la varriable 'deux' la soustration des deux varriables ?
Voici mon code:
deux=$dix-$huit
Mais il ne marche pas
erreur:
line 1: 10-8: command not found
Merci pour votre aide