Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2007, 14h31   #1
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 8 299
Points : 8 299
Par défaut [ksh] Export des variables obligatoire ?

Bonjour,

J'ai un script qui a besoin de calculer le nombre de ligne d'un fichier - 1. J'arrive à faire l'opération en plusieurs temps mais si je ne l'exporte pas, ça ne fonctionne pas :
Code :
1
2
3
4
5
6
7
Comptage ()
{
  export compteur=`wc -l fichier.txt | awk '{printf $1}'`
  echo "$compteur"
  compteur=`expr $compteur - 1`
  echo "$compteur"
}
C'est comme si je lançai les commandes les unes après les autres dans un terminal

J'ai bien la commande uniline :
Code :
expr `wc -l fichier.txt | awk '{printf $1}'` - 1
Mais comme elle comporte déjà des back quote je ne vois pas comment l'intégrer à mon script.

Je bosse sous AIX (désolé )
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 22h12   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par gege2061
Bonjour,
Je bosse sous AIX (désolé )
Code :
1
2
3
4
5
6
7
Comptage ()
{
  export compteur=`wc -l fichier.txt | awk '{printf $1}'`
  echo "$compteur"
  compteur=`expr $compteur - 1`
  echo "$compteur"
}

A tester en ksh (je suis en bash), mais je pense que ça fonctionne

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
#!/bin/bash
 
typeset -xi compteur
 
Comptage ()
{
  compteur=`wc -l < fichier.txt`
  echo $compteur
  ((compteur=compteur-1))
  echo $compteur
}
 
Comptage
echo $compteur
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 11h08   #3
Rédacteur
 
Avatar de gege2061
 
Inscription : juin 2004
Messages : 5 850
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : juin 2004
Messages : 5 850
Points : 8 299
Points : 8 299
Effectivement ça marche.

Comme j'ai 6 fichiers à compter, j'ai mis tout ça sur une ligne :
Code :
1
2
((compteur=`wc -l $SegCoDiff | awk '{printf $1}'`-1))
echo $compteur
Merci pour ton aide
__________________
gege2061's blog
gege2061 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h16.


 
 
 
 
Partenaires

Hébergement Web