Script csh, lecture par ligne d'un fichier

Fermé
Wenzel Messages postés 225 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 20 novembre 2012 - 4 déc. 2009 à 09:08
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 9 déc. 2009 à 20:20
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
4 déc. 2009 à 09:12
Salut,

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

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

;-))
0
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 225 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 20 novembre 2012 14
9 déc. 2009 à 20:16
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
9 déc. 2009 à 20:20
Cool ;-))

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