Création d'une version de script shell des commandes de terminal
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
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'
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.
La seule exigence est la ligne d'interprétation, qui devrait être au début du fichier
#!/bin/shvous pouvez écrire un script pour d'autres comme bash (
#!/bin/bash) ou zsh (#!/bin/zsh)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)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