1. Apprendre
  2. /
  3. Cours
  4. /
  5. Introduction à l'invite de commande

Connected

Exercice

Comment puis-je transmettre des noms de fichiers à des scripts?

Un script qui traite des fichiers précis est utile pour garder une trace de ce que vous avez fait, mais un script qui vous permet de traiter n'importe quels fichiers est encore plus utile. Pour ce faire, vous pouvez utiliser l'expression spéciale $@ (le signe dollar immédiatement suivi de l'arobase) pour signifier « tous les paramètres de ligne de commande transmis au script ».

Par exemple, si unique-lines.sh contient sort $@ | uniq, lorsque vous exécutez :

bash unique-lines.sh seasonal/summer.csv

le shell remplace $@ par seasonal/summer.csv et traite un fichier. Si vous exécutez ceci :

bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv

il traite deux fichiers de données, et ainsi de suite.

En rappel, pour enregistrer ce que vous avez écrit dans Nano, tapez Ctrl + O pour écrire le fichier, puis Entrée pour confirmer le nom de fichier, puis Ctrl + X pour quitter l'éditeur.

Instructions 1/2

undefined XP
  • 1

    Modifiez le script count-records.sh avec Nano et remplacez les deux espaces réservés ____ par $@ et -l (la lettre) respectivement afin qu'il compte le nombre de lignes dans un ou plusieurs fichiers, en excluant la première ligne de chaque fichier.

  • 2

    Exécutez count-records.sh sur seasonal/*.csv et redirigez le résultat vers num-records.out à l'aide de >.