Meilleures pratiques et conseils pour écrire des scripts shell en tant que pro
- 4653
- 1055
- Rayan Lefebvre
Le script de shell est un outil puissant pour l'automatisation DevOps. Il vous permet d'automatiser les tâches répétitives, de gérer et de configurer votre infrastructure et de rationaliser vos processus de déploiement. Cependant, la rédaction de scripts de coquille efficaces nécessite de suivre les meilleures pratiques et d'utiliser certaines techniques pour rendre votre code efficace, modulaire et maintenable.
Dans cet article, nous discuterons de certaines des meilleures pratiques et conseils pour les scripts shell qui peuvent vous aider avec votre automatisation DevOps.
1. Utilisez des noms de variables significatives
L'utilisation de noms de variables significatives peut aider à rendre votre code plus lisible et compréhensible. Cela facilite également la maintenance pour les autres de maintenir votre code s'ils ont besoin de le modifier à l'avenir.
Voici un exemple d'utilisation de noms de variables significatifs dans un script shell:
#!/ bin / bash # définir la date actuelle actuelle_date = $ (date +% y-% m-% d) # Imprimez la date actuelle echo "La date actuelle est: $ current_date"1234567 | #!/ bin / bash # Définissez la datecurrent_date actuelle = $ (date +% y-% m-% d) # Imprimez le datecho actuel "La date actuelle est: $ current_date" |
Dans cet exemple, nous utilisons la variable "date actuelle" Pour stocker la date actuelle, puis imprimer en utilisant Echo. Cela indique clairement ce que la variable est le stockage et comment il est utilisé dans le script.
2. Utiliser la vérification des erreurs
La vérification des erreurs est une partie importante des scripts shell, en particulier pour DevOps Automation. Cela vous aide à attraper des erreurs dès le début et à les empêcher de causer des problèmes sur toute la ligne.
Voici un exemple d'utilisation de la vérification des erreurs dans un script shell:
#!/ bin / bash # Vérifiez si un fichier existe si [ ! -f / path / vers / fichier]; puis écho "Erreur: le fichier n'existe pas."Sortez 1 fi # Continuez avec le reste du script123456789 | #!/ bin / bash # Vérifiez si un fichier existe [ ! -f / path / vers / fichier]; puis écho "Erreur: le fichier n'existe pas."Exit 1fi # Continuez avec le reste du script |
Dans cet exemple, nous utilisons l'instruction IF pour vérifier si un fichier existe. Si le fichier n'existe pas, nous imprimons un message d'erreur et quittons le script avec un code d'état non nul. Cela nous permet d'attraper l'erreur très tôt et d'empêcher le script de continuer et de causer potentiellement plus de problèmes.
3. Utiliser l'indentation
L'indentation est une partie importante de la rendez-vous votre code plus lisible et compréhensible. Il peut vous aider à voir la structure de votre code en un coup d'œil et à le rendre plus facile à suivre.
Voici un exemple d'utilisation de l'indentation dans un script shell:
#!/ bin / bash # boucle via une liste de fichiers pour le fichier dans / path / to / files / *; Faites # vérifiez si le fichier est un répertoire si [-d "$ file"]; puis # Imprimez le nom du répertoire Echo "Répertoire: $ Fichier" Else # Imprimez le nom de fichier Echo "Fichier: $ Fichier" Fi Dait12345678910111213 | #!/ bin / bash # LOOP via une liste de fichiers pour le fichier dans / path / vers / files / *; Faites # vérifiez si le fichier est un répertoire si [-d "$ file"]; puis # Imprimez le nom du répertoire Echo "Répertoire: $ Fichier" Else # Imprimez le nom de fichier Echo "Fichier: $ Fichier" FidOne |
Dans cet exemple, nous utilisons l'indentation pour montrer la structure du script. La boucle pour un niveau en retrait, et les instructions IF sont en retrait d'un autre niveau. Cela permet de voir facilement quels blocs de code sont imbriqués à l'intérieur desquels d'autres blocs.
4. Utiliser des options de ligne de commande
Les options de ligne de commande sont un outil puissant pour les scripts shell. Ils vous permettent de transmettre des arguments à votre script et de personnaliser son comportement en fonction de ces arguments.
Voici un exemple d'utilisation d'options de ligne de commande dans un script shell:
#!/ bin / bash # Options de ligne de commande Parse While GetOpts ": F: D:" Opt; Do Case $ opt in f) # Définissez le fichier d'entrée input_file = $ optarg ;; d) # Définissez le répertoire de sortie Output_dir = $ optarg ;; \?) Echo "Option non valide: - $ optarg"> & 2 sortie 1 ;; :) Echo "Option - $ optarg nécessite un argument."> & 2 Exit 1 ;; ESAC fait # faire quelque chose avec le fichier d'entrée et le répertoire de sortie12345678910111213141516171819202122232425 | #!/ bin / bash # Parse Command Line OptionWhile getOPTS ": F: D:" Opt; Do Case $ opt in f) # Définissez le fichier d'entrée input_file = $ optarg ;; d) # Définissez le répertoire de sortie Output_dir = $ optarg ;; \?) Echo "Option non valide: - $ optarg"> & 2 sortie 1 ;; :) Echo "Option - $ optarg nécessite un argument."> & 2 Exit 1 ;; eSacDone # faire quelque chose avec le fichier d'entrée et le répertoire de sortie |
5. Évitez le codage rigide
Lors de la création de scripts shell pour l'automatisation, évitez les valeurs de codage rigide telles que les adresses IP, les chemins de fichier ou d'autres détails spécifiques au système. Au lieu de cela, utilisez des variables ou des fichiers de configuration pour stocker et faire référence à ces informations. Cela rendra le script plus portable et plus facile à maintenir à l'avenir.
Par exemple, au lieu de codage en dur un chemin de fichier comme «/ Var / log / messages», Utilisez une variable comme $ Log_path:
#!/ bin / bash log_path = "/ var / log / messages" cat $ log_path12345 | #!/ bin / bash log_path = "/ var / log / messages" cat $ log_path |
6. Utiliser des déclarations conditionnelles
Les déclarations conditionnelles sont utiles dans les scripts de shell pour prendre des décisions en fonction de certaines conditions. La déclaration conditionnelle la plus courante dans Bash est l'énoncé IF.
#!/ bin / bash si [-e / tmp / fichier.txt] puis écho "le fichier existe" else echo "Le fichier n'existe pas" fi12345678 | #!/ bin / bash si [-e / tmp / fichier.txt] puis écho "le fichier existe" else echo "Le fichier n'existe pas" fi |
Ce script vérifie si le fichier «/ TMP / Fichier.SMS" existant. Si c'est le cas, il imprime "Le fichier existe", Et si ce n'est pas le cas, il imprime "Fichier ne existe pas".
7. Utiliser des fonctions
Les fonctions sont des blocs de code qui peuvent être appelés plusieurs fois à partir d'un script. Ils aident à garder le code organisé et à rendre plus facile l'entretien.
#!/ bin / bash fonction check_disk_space df -h check_disk_space1234567 | #!/ bin / bash fonction check_disk_space df -h check_disk_space |
Ce script définit une fonction "Check_disk_space" qui exécute le "DF -H" commande pour afficher l'utilisation de l'espace disque. La fonction est alors appelée à la fin du script.
8. Utiliser la journalisation
La journalisation est une partie importante des scripts shell pour DevOps car il aide à dépanner les erreurs et à suivre l'exécution du script. La commande Logger peut être utilisée pour envoyer des messages au journal système.
#!/ bin / bash fonction check_disk_space df -h logger "espace disque vérifié" check_disk_space12345678 | #!/ bin / bash fonction check_disk_space df -h logger "espace disque vérifié" check_disk_space |
Ce script envoie un message au journal système à l'aide de la commande Logger lorsque la fonction check_disk_space est appelée.
Conclusion
Les scripts shell sont une compétence essentielle pour les professionnels DevOps. En suivant ces meilleures pratiques et conseils, vous pouvez créer des scripts plus efficaces et maintenables pour l'automatisation et l'administration du système. N'oubliez pas de tester soigneusement vos scripts et d'utiliser le contrôle de la version pour suivre les modifications.
- « Awk - fonctionnalités avancées
- Opérations arithmétiques awk un guide du débutant des méthodes de calcul de base »