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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#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

Haut de page ↑