Débutante en SCRIPT SELL Les opérateurs boolé

Résolu/Fermé
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014 - Modifié par 7amdolah le 11/06/2012 à 13:37
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014 - 11 juin 2012 à 16:42
Bonjour,

bonjour.Je suis une informaticienne débutante en SCRIPT SELL le code suivant:
#!/bin/ksh 
echo ' '>test.ls 
event_start_date_4=0 
cat ict_detail_20120604_20120605.dat | while read ligne 
do 
 event_start_date_='echo $ligne|awk -F";" '{print $7}'' 

  
 if ! [ -d $event_start_date_ ] 
  then 
   echo $event_start_date_ 
   event_start_date_1='echo $event_start_date_|awk -F"/" '{print $1}'' 
   event_start_date_2='echo $event_start_date_|awk -F"/" '{print $2}'' 
   event_start_date_3='echo $event_start_date_|awk -F"/" '{print $3}'' 
   event_start_date_4='echo $event_start_date_3$event_start_date_2$event_start_date_1' 
   echo $event_start_date_4 
  if  $event_start_date_4 >= 20001010  &&  $event_start_date_4 <= 20201010  
  then 
  echo $event_start_date_4>>test.ls 
  fi 
 fi 
done 

me retourne l'erreur suivante:
test2_2.shh[18]: 20120604:  not found
A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 11/06/2012 à 15:20
hello
remplacer
if  $event_start_date_4 >= 20001010  &&  $event_start_date_4 <= 20201010  
per
if  [ $event_start_date_4 -ge 20001010  &&  $event_start_date_4 -le 20201010 ]  
1
salut,

dubcek, avec l'opérateur ET (&&), ou OU (||), il faut faire plusieurs tests
if  [ $event_start_date_4 -ge 20001010  ] &&  [ $event_start_date_4 -le 20201010 ]  
sinon bash se plaint : «bash: [: « ] » manquant»
ou utiliser -a, mais il faut faire attention à ce que contiennent les expressions.
0
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014
11 juin 2012 à 16:42
Merci de votre réponse.
ca marche aussi avec:

if (( $event_start_date_4 >= 20001010  &&  $event_start_date_4 <= 20201010 ))
0