Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/04/2006, à 08:50

coincoin169

Script Shell lister des fichiers

Salut à tous !

Je fais un petit script et je n'arrive pas a lister les fichiers


Mon script : script
=================
#!/bin/sh
for file in $1
do
    echo $file
done
=================

sur la ligne de commande je tape
script *
mais il m'affiche que le premier fichier
j'ai essayé ca mais meme topo

=================
#!/bin/sh
for file in `ls $1`
do
    echo $file
done
=================

Merci d'avance

#2 Le 19/04/2006, à 09:32

mesmento

Re : Script Shell lister des fichiers

1) Tu peux alléger ton script à ceci :

#! /bin/sh

echo $1

ou


#! /bin/sh

ls $1

Ensuite, la raison pour laquelle le script ne renvoit que le premier fichier est, je crois, que l'appel "$1" n'attend qu'un seul argument. Pour comprendre essaye:

#! /bin/sh

echo $1 $2 $3 $4

en réalité, ce qui se passe c'est que en faisant "./script *" tu envois "fichier1 fichier2 ..." et il ne prend en compte que fichier1

Ce  que tu souhaites c'est que $1 reçoive non pas la sortie de "*" mais "*" lui-même.

Pour cela tu dois l'échapper:

./script \*

et là, miracle !


Donc pour résumer :


#! /bin/sh

echo $1

Puis tape:

./script \*

Hors ligne