Création d'une version de script shell des commandes de terminal

Sep 28 2020

Je commence tout juste à apprendre les bases du terminal Linux et je suis un peu confus sur la conversion des commandes du terminal en script shell. Comment aborderais-je la création d'un fichier de script dans le terminal Linux et la création d'une version de script shell de mon code ci-dessous:

curl -O https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv
head -n 12 cities.csv

Réponses

7 RomanRiabenko Sep 28 2020 at 01:57

Utilisation d'un éditeur de texte pour créer votre script

Les scripts sont enregistrés dans des fichiers texte. Vous pouvez en créer un dans un éditeur de texte, comme geditou nano:

$ nano yourscript.sh

Le nom de fichier en général et l' extension de nom de fichier en particulier n'ont pas d'importance . Dans votre fichier de script, vous devez déclarer l'exécutable de l'interpréteur pour l'exécuter (un shebang) . Ajoutez ensuite votre code. Pour enregistrer votre script dans nano, appuyez sur Ctrl+ X, puis tapez yet appuyez sur Enter.

Composer votre script

Si vous passez des arguments au script, vous pouvez les référencer dans votre code par un numéro (le premier argument passé est $1, le second est $2, et ainsi de suite). $0est le nom du script lui-même.

En règle générale, utilisez toujours des guillemets doubles autour des variables .

En prenant votre code, par exemple, le script pourrait être:

#! /bin/bash
curl -O "$1"
head -n 12 cities.csv

Il peut y avoir un espace après#! , mais ce n'est pas nécessaire. Dans la plupart des cas, vous pouvez vérifier la $0variable dans le terminal pour l' exécutable shell interprétant vos commandes dans le terminal :

$ echo $0
/bin/bash

Améliorer votre code

En supposant que tout ce que vous voulez, ce sont les 12 premières lignes du fichier téléchargé, vous pouvez ignorer l'enregistrement du fichier téléchargé sur le disque et le diriger vers la commande suivante :

#! /bin/bash
curl -s "$1" | head -n 12

En prime, il vous permet d'omettre le nom de fichier dans votre script.

Exécution du script

En supposant que vous enregistrez votre script sous yourscript.sh, ajoutez l'autorisation de l'exécuter en premier:

$ chmod +x yourscript.sh

Ensuite, pour l'exécuter, vous devez spécifier le chemin d'accès et fournir les arguments. S'il se trouve dans le répertoire courant, vous pouvez spécifier le chemin d'accès en ajoutant ./comme ceci :

$ ./yourscript.sh 'https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv'
3 mtk Sep 28 2020 at 01:50

Toutes les commandes que vous tapez une par une à l'invite peuvent simplement être placées dans un fichier script et exécutées une fois.

  1. La seule exigence est la ligne d'interprétation, qui devrait être au début du fichier

      #!/bin/sh
    

    vous pouvez écrire un script pour d'autres comme bash ( #!/bin/bash) ou zsh ( #!/bin/zsh)

  2. Rendre votre script exécutable en exécutant chmod +x scriptFile.sh(l'extension sh est bonne à avoir, car elle indique qu'il s'agit d'un fichier script)

  3. Exécutez le script par

    ./scriptFile.sh

Facultatif: vous pouvez ajouter le chemin d'accès à la variable PATH, pour être en mesure d'exécuter le script de tout répertoire en appelant simplement scriptFile.shcomme vous invoquez toute autre commande shell ls, oucat