Pour sécurise notre concepts Nous allons apprendre 2 outils de programmation très utiles qui fonctionnent parfaitement dans Bash. Apprenez à créer funciones et définir tuyaux peut sembler complexe au premier abord, mais ensuite nous verrons l'immense Utilidad qu'ils nous fournissent. |
Tuyaux
Plus précisément, et sans prendre trop de tours, un pipeline est une méthode qui permet de diriger la sortie d'un processus comme l'entrée d'un autre, ce qui permet une série d'avantages, tels que la réduction des lignes de code, la suppression des variables de stockage des résultats et l'amélioration du l'efficacité du script.
Un tuyau est généralement reconnu par le symbole | qui permet de concaténer des expressions; Bien qu'il soit utilisé par défaut, il existe d'autres façons de créer des tuyaux.
Exemple: imprimer les messages récents du noyau
#dmesg vous permet de voir les messages récents du noyau et les pilotes chargés # pendant le démarrage du système; tail imprime les dernières parties d'un fichier ou #command
dmesg | queue
Bien qu'ils puissent être compliqués autant que nous le souhaitons, la structure de base d'un pipeline permet au résultat d'une commande d'être utilisé comme entrée pour la suivante, ce qui peut fournir une entrée pour une nouvelle commande si nous continuons à ajouter des tubes consécutifs.
fonctions
Les fonctions sont un ensemble d'instructions qui sont regroupées afin de pouvoir être exécutées plusieurs fois sans avoir à les réécrire. Cela revient à penser que lorsque nous apprenons à cuisiner un type d'aliment, nous écrirons sa recette sur une feuille, et chaque fois que nous voulons cuisiner cet aliment, nous consultons la recette au lieu de réécrire une nouvelle feuille avec la même recette.
La chose la plus importante à propos des fonctions est peut-être la possibilité de passer des paramètres, des données qu'elles utiliseront pour les traiter et générer une sortie. Sa structure est la suivante:
function nom-fonction {
processus
}
Exemple: fonction qui montre les services qui fonctionnent sur le protocole tcp. Nous pouvons également voir comment appliquer plus de tuyaux.
# On définit un nom de fonction, ça peut être celui qu'on aime.
function services_tcp {
#cat concatène et affiche le contenu du dossier / etc / services, qui # contient tous les services avec leurs ports associés.
# le premier grep prend la liste et supprime les commentaires, avec –v on inverse le résultat
# le second grep ne montre que ceux liés à tcp
chat / etc / services | grep –v "^ #" | grep tcp
}
Lorsque nous devons exécuter cette fonction, il suffit de l'appeler par son nom:
tcp_services
Dans ce cas, cela fonctionne sans paramètres; Dans le cas où il les a, nous devons les ajouter pour que la fonction fonctionne correctement, sinon la fonction ne fonctionnera pas correctement. L'utilisation de return permet à une fonction de renvoyer une valeur à la suite du processus.
Exemple: fonction avec des paramètres d'entrée qui calcule la somme de 2 nombres.
#! / Bin / bash
fonction somme ()
{
# avec let nous pouvons exécuter l'opération entre les guillemets
soit "résultat = 1 $ + 2 $"
#return permet de renvoyer la valeur entière. Une fois le retour exécuté, la valeur sera déposée dans la variable $?
return $ result;
}
# La fonction somme est appelée et on passe 2 paramètres d'entrée.
ajouter 2 3
# imprime la valeur de $? avec echo évaluant la valeur réelle de la variable entre guillemets
echo -e "Résultat = $?";
<< Aller à la partie précédente
Je ne suis pas sûr, mais l'instruction de retour des fonctions n'est utilisée que pour renvoyer un entier entre 0 et 255, comme les codes d'erreur de "exit", généralement 0 si tout va bien et un autre nombre pour les autres cas. Bien que cela fonctionne dans l'exemple, je ne pense pas que ce soit une bonne pratique de renvoyer le résultat avec retour.
Là-bas, je dis un non-sens hein! œil! Ha!
La vérité m'a laissé un doute. Dans tous les cas, pour éviter des problèmes avec les fonctions, on peut remplacer le return par echo dans le cas où la fonction cherche à retourner ou à imprimer une valeur ou une chaîne.
C'est vrai, pour résoudre ce problème, vous pouvez utiliser la commande bc, dans la fonction sum, vous pouvez utiliser: result = `echo $ 1 + $ 2 | bc -ql`
bon,
Je voudrais savoir où je peux enregistrer les fichiers bash pour exécuter à l'échelle du système et ce n'est pas le répertoire bin, mais peut être à la maison pour la sauvegarde.
Gracias y saludos.
Merci beaucoup, je commence par les scripts, et la vérité est que c'est très utile, vous êtes très gentil de partager vos connaissances!
salutations
Je vous remercie! Étreinte!
Pablo
Erreur de syntaxe, inattendue
J'obtiens une erreur en essayant d'exécuter l'exemple, je l'ai copié exactement de la même manière
qui peut être? je suis sur ubuntu 14.10