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 24/11/2006, 05h40   #1
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 195
Points : 27
Points : 27
Par défaut Problème avec script bash

Bonjour, voici mon script :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
echo $1
 
if [$1='83']
then
cd ./../Tycho2    
 
echo "lecture suppl_1.dat"
./list 1 -2 5.5 345 195 30 90
 
fi
Si je tape :
Code :
1
2
chmod 777 essai
./essai 83
Voici ce que j'obtiens :
Code :
1
2
83
./essai: line 5: [83=83]: command not found
D'ailleurs j'obtiens la même chose avec :ou encore avec :Pourtant mon script fonctionne sans problème si je retire la condition :
Code :
1
2
3
4
5
6
#!/bin/bash
 
cd ./../Tycho2    
 
echo "lecture suppl_1.dat"
./list 1 -2 5.5 345 195 30 90
Où est l'erreur ?
Merci de votre aide
jejerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 07h58   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 772
Points : 7 772
83 est numerique donc

Code :
1
2
3
4
5
6
7
8
#!/bin/bash
 
echo $1
 
if [ $1 -eq 83 ]; then
echo "lecture suppl_1.dat"
/chemin/réel/et/complet/Tycho2/list 1 -2 5.5 345 195 30 90
fi
deplus ne fais pas de CD dans un shell script
  1. c'est dégueux
  2. si tu en as plusieurs ça rend vite le code illisible
  3. ça peut poser certains problèmes
  4. ça rend le code peu portable
  5. etc...etc...
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 09h15   #3
Membre Expert
 
Avatar de narmataru
 
Inscription : décembre 2002
Messages : 1 423
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2002
Messages : 1 423
Points : 1 491
Points : 1 491
Salut,
Citation:
if [$1='83']
Il faut mettre des espaces :
Citation:
if [ $1 = '83' ]
car '[' et ']' sont des commandes et qu'entre chaque commande il faut un espace
__________________
Reportage d'Arte sur Linux
narmataru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 12h04   #4
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Citation:
Envoyé par frp31
8
deplus ne fais pas de CD dans un shell script
  1. c'est dégueux
  2. si tu en as plusieurs ça rend vite le code illisible
  3. ça peut poser certains problèmes
  4. ça rend le code peu portable
  5. etc...etc...
Tout a fait d'accord.
Mais utiliser {push,pop}d peut se révéler agréable ;-)
__________________
Software becomes slower faster than hardware becomes faster

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 21h12   #5
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 195
Points : 27
Points : 27
Comment faire pour executer un programme qui n'est pas dans le répertoire courant ?
Code :
./../Tycho2/list 1 -2 5.5 345 195 30 90
ne fonctionne pas, alors que :
Code :
1
2
cd ./../Tycho2
./list 1 -2 5.5 345 195 30 90
fonctionne bien.
jejerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 22h32   #6
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Salut,

En fait il faut rajouter le répertoire courant au PATH pour que ça fonctionne ( il me semble )

Teste une fois ça, sinon on avisera

++
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h21.


 
 
 
 
Partenaires

Hébergement Web