Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
954 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ Script ] Les OR dans les IF et des calculs en Bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Script ] Les OR dans les IF et des calculs en Bash

n°411690
j-'-r
Sans horraires fixe
Posté le 18-02-2004 à 01:15:24  profilanswer
 

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 :jap:

mood
Publicité
Posté le 18-02-2004 à 01:15:24  profilanswer
 

n°411691
Riot
Buy me a riot
Posté le 18-02-2004 à 01:19:13  profilanswer
 

deux=`$dix - $huit`
respecte les espaces et les quotes (ceux de la touche [7] du clavier)

n°411692
Riot
Buy me a riot
Posté le 18-02-2004 à 01:21:29  profilanswer
 

avant de faire ton if là, tu fais:
if [ $# -eq 5 ];then
#ton if
else
#je c  pas ce que tu veux faire
fi

n°411749
bobuse
Posté le 18-02-2004 à 09:17:32  profilanswer
 

riot a écrit :

deux=`$dix - $huit`
respecte les espaces et les quotes (ceux de la touche [7] du clavier)


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 !


Message édité par bobuse le 18-02-2004 à 09:17:48
n°411754
aigles
Posté le 18-02-2004 à 09:43:29  profilanswer
 

Pour ton test il faut que tu utilises des guillemets pour encadrer la variable à substituer :


if [ "$1" == "" ]||[ "$2" == "" ]||[ "$3" == "" ]||[ "$4" == "" ]||[ $5 == "" ]  
then


Une autre méthode pour tester si une variable est vide est l'opérateur éz:


if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" -o -z "$5" ]
then


 
 
Pour ton calcul, si tu utilise 'bash' ou 'ksh' il faut utiliser les doubles parentheses:


(( deux = dix - huit ))
echo $((huit+deux))


 
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')


deux=`expr $dix - $huit`


---------------
Jean Pierre.
n°411766
j-'-r
Sans horraires fixe
Posté le 18-02-2004 à 10:08:34  profilanswer
 

merci a vous j'ai réussit ce que je voulais :)

n°411937
Riot
Buy me a riot
Posté le 18-02-2004 à 13:23:58  profilanswer
 

bobuse>oups petit oubli... (on va dire que c t pcqu'il était tard...):D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ Script ] Les OR dans les IF et des calculs en Bash

 

Sujets relatifs
Ce script ne veut pas fonctionnerPg_DUmp : script de sauvegarde, mais demande automatique du password ?
Script qui fonctionne, maisÉcrire des formules/calculs mathématiques
Utiliser Lynx - links - W3m dans un script shelltutoriaux fr pour Bash.
Script à lancé au démarage sous l'user "xyz"Créer un petit menu dans un script bash
serveur, script inscription automatique 
Plus de sujets relatifs à : [ Script ] Les OR dans les IF et des calculs en Bash


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR