Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 19/04/2006, à 07: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, à 08: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

Haut de page ↑