Script csh, lecture par ligne d'un fichier

Wenzel Messages postés 254 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
je doit écrire un script en csh, qui prend en paramètre un fichier contenant des noms, et l'affiche a l'ecran.

elle se nomme affiche <liste_noms>

on me demande d'utiliser la commande Unix file, qui doit renvoyer "text" si le fichier est un fichier texte.
voici le script que j'ai tenté d'écrire mais qui en fonctionne pas

#! /bin/csh

if ($#argv == 0) then
echo "erreur"
else if ((Unix file $argv[1] | grep text) == 'text') then
more $argv[1]
else echo "le paramètre n'est pas un fichier texte"
endif

Merci

3 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

La commande en question c'est "file" et non pas "Unix file" ;-((

else if ((file $argv[1] | grep text) == 'text') then

;-))
0
swed
 
Bonjour,

Je n'ai pas testé, et je me trompe peut-être.
Mais par réflexe, j'aurais mis des quotes inverses autour de la commande :

else if ((`file $argv[1] | grep text`) == 'text') then

Cordialement,
Marc.
0
Wenzel Messages postés 254 Statut Membre 14
 
Merci bien, j'ai finalement reussi a créer le script et il fonctionne, erreur de lecture de l'énoncé ^^
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Cool ;-))

Par contre il eut été sympa et de bon aloi (comme dirait maître Capelo) de poster la solution ;-\
0