Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
- 2873
- 782
- Victor Charpentier
Bash est une interface de shell variée avec de nombreuses options de programmation et un langage pédagogique riche. Il est facile de manquer les fonctionnalités et la dynamique de Bash, donc cette série introduit un certain nombre de conseils, astuces, exemples et gotchas quand il s'agit d'utiliser Bash. Pour les deux premiers articles de cette série, veuillez consulter notre article UTILISATEUR UTILISANT CONSEILS DE COMMANDE DE COMMANDE ET ASTRICES PARTIE 2 ET EXEMPLES EXEMPLES UTILISATIONS DE LIGNE DE COMMANDE DE COMMANDE ET.
Dans cette série de tutoriels, vous apprendrez:
- Conseils, astuces et méthodes utiles de la ligne de commande bash
- Comment interagir avec la ligne de commande bash de manière avancée
- Comment affiner vos compétences de bash dans l'ensemble et devenir un utilisateur de bash plus compétent
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Indépendant de la distribution Linux |
Logiciel | Ligne de commande bash, système basé sur Linux |
Autre | Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat) |
Conventions | # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié |
Exemple 1: Vérification correcte de l'existence de fichiers et de répertoires
Nous pouvons vérifier la présence d'un répertoire assez facilement en utilisant le -d
(est-ce qu'un répertoire avec le nom spécifié existe) dans un si
déclaration:
$ Mypathtocheckforexistence = "$ pwd" $ echo "$ mypathtocheckforexistence" / home / roel / iamhappy $ if [-d $ mypathtocheckforexistence]; Puis écho "existe!"; fi existe!
Cependant, il est tout aussi facile de commettre une erreur difficile à déborder dans certaines zones de bash. Par exemple, considérons (et voyons si vous pouvez trouver le bug);
$ Mypathtocheckforexistance = "/ netrreallyexist" $ if [-d $ mypathtocheckforexistence]; Puis écho "existe!"; fi existe! $ ls / DoESNOTREALYLYEXIST LS: Impossible d'accéder à «/ ne peut-être pas enterré»: aucun fichier ou répertoire de ce type
Pourquoi le si
Vérifiez à la conclusion que le / ne fait pas de réalité
Le répertoire existe? Pouvez-vous voir le bug?
Le problème ici est qu'il y a une faute de frappe dans le nom de la variable. Existence
contre EXISTENCE
…
Peut-être un peu effronté, mais en toute sérieux, cela devrait également être très facile à courir dans Gotcha:
$ si [-d]; Puis écho "existe!"; fi existe!
Et plus significativement;
$ Var1 = "; if [-d $ var1]; alors echo" existe!"; fi existe!
Ainsi, si vous avez oublié l'initialisation de la variable de nom du répertoire que vous vérifiez par la suite, ou si le nom de la variable est mal orthographié, le résultat sera que le bash si
La déclaration renvoie que le répertoire existe! Il n'y a plus de mention sur cette exception intéressante dans le manuel (Ref homme bash
) qui clarifie seulement que -d
est Vrai si le fichier existe et est un répertoire..
Alors, comment pouvons-nous réparer cela?
Exemple 2: Une meilleure façon de vérifier l'existence de fichiers et de répertoires
Le correctif est facile; Nous pouvons citer notre variable avec des devis doubles ("
), qui fera alors le si
pas par défaut au résultat toujours de la true. En tant que note latérale intéressante pour une réflexion plus approfondie, et peut-être votre commentaire compétent ci-dessous au même effet, il faut se demander pourquoi.
$ Var1 = "; si [-d" $ var1 "]; alors echo" existe!"; fi $
Une solution simple et élégante. À la place du si
déclaration est maintenant analysée comme Si [-d]
Ce qui, comme nous l'avons vu, évalue toujours à vrai, maintenant il est analysé comme (à condition que Var1
est vide au moins) Si [-d ""]
ce qui se traduit par faux, et donc le alors
La clause n'est pas exécutée.
Exemple 3: J'ai toujours voulu extraire le contenu d'un .Fichier Deb?
Parfois quelque chose se casse sur un système, et nous voulons peut-être obtenir un seul fichier à partir d'un .deb
emballer. .deb
Les packages (packages d'installation de style Debian, tels que utilisés par Ubuntu et Mint) peuvent être facilement trouvés en ligne, mais il n'est pas toujours aussi évident de savoir comment en extraire des fichiers. Pour ce faire, nous pouvons:
ar x some_deb_file.Données Deb Tar -xf.le goudron.xz
ardente
est un outil pour créer, modifier et extraire des archives, comme le manuel (homme ar
) explique. Ces commandes produiront les fichiers à l'intérieur du .deb
emballer. Chaque .deb
Le fichier aura deux fichiers d'archives, à savoir contrôle.le goudron.xz
et données.le goudron.xz
(une norme commune), et - comme vous pouvez le voir dans l'exemple - c'est le données.le goudron.xz
Archive qui doit être élargie pour voir les fichiers à l'intérieur du .deb
emballer.
Conclusion
Dans cet article, nous avons exploré les moyens de vérifier correctement l'existence de fichiers et de répertoires en utilisant une citation appropriée, et nous avons illustré la façon dont il est facile de faire des erreurs dans ce domaine. Testez toujours vos scripts et essayez une variété de situations et de scénarios différentes. Nous avons également examiné comment nous pouvons extraire les contenus d'un .deb
fichier à l'aide du ardente
et le goudron
commandes. Comme toujours, profitez du codage bash et laissez-nous un commentaire ci-dessous avec vos résultats!
- Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
- Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
- Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
- Exemples de lignes de commande de commande de bash utile - Partie 4
- Conseils de commande de commande de bash utile et exemples de trucs - Partie 5
Tutoriels Linux connexes:
- Une introduction à l'automatisation Linux, des outils et des techniques
- Masterring Bash Script Loops
- Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
- Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
- Exemples de lignes de commande de commande de bash utile - Partie 4
- Choses à installer sur Ubuntu 20.04
- Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
- Boucles imbriquées dans les scripts bash
- Ubuntu 20.04 Guide
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- « Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
- Exemples de lignes de commande de commande de bash utile - Partie 4 »