Sous-coquilles Linux pour les débutants avec des exemples

Sous-coquilles Linux pour les débutants avec des exemples

L'utilisation de sous-coquilles dans Bash vous offre la capacité de générer des informations sensibles au contexte à partir de votre commande BASH. Par exemple, si vous souhaitez modifier une chaîne de texte juste à l'intérieur d'un écho déclaration, alors cela peut être fait facilement avec des sous-coquilles.

Dans ce tutoriel, vous apprendrez:

  • Comment utiliser l'emploi de l'utilisation des sous-coquilles en bash
  • Comment utiliser des sous-coquilles pour obtenir des informations sensibles au contexte
  • Exemples d'utilisation de bash de bash
Sous-coquilles Linux pour les débutants avec des exemples

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
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: deux syntaxes différentes

Bash permet deux syntaxes de sous-coquilles différentes, à savoir $ () et des déclarations entourées de back-tick. Regardons quelques exemples faciles à démarrer:

$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b') c" abc $ echo "a'echo 'b "C" ABC 


Dans la première commande, par exemple, nous avons utilisé ' Guillemets simples. Cela a abouti à notre commande de sous-shell, à l'intérieur des citations simples, à être interprétée comme un texte littéral au lieu d'une commande. C'est un bash standard: ' indique le littéral, " indique que la chaîne sera analysée pour les sous-coquilles et les variables.

Dans la deuxième commande, nous échangeons le ' pour " et ainsi la chaîne est analysée pour les commandes et variables réelles. Le résultat est qu'une sous-coquille est lancée, grâce à notre syntaxe de sous-coquille ($ ()), et la commande à l'intérieur de la sous-coquille (écho 'a') est exécuté littéralement, et donc un un est produit, qui est alors inséré au niveau global / supérieur écho. La commande à ce stade peut être lue comme écho "a" Et donc la sortie est un.

Dans la troisième commande, nous étendons cela pour indiquer à la façon dont les sous-coquilles fonctionnent dans le contexte. Nous faisons écho à la lettre b à l'intérieur de la sous-coquille, et cela est joint à gauche et à droite par les lettres un et c donner la sortie globale à être abc D'une manière similaire à la deuxième commande.

Dans la quatrième et dernière commande, nous illustons la syntaxe de sous-coque alternative $ (). Il est important de savoir que $ () est la syntaxe préférée, et que dans certains cas éloignés, la syntaxe basée sur le back-tick peut produire des erreurs d'analyse $ () ne fait pas. Je vous encourage donc fortement à toujours utiliser le $ () Syntaxe pour les sous-coquilles, et c'est aussi ce que nous utiliserons dans les exemples suivants.

Exemple 2: un peu plus complexe

$ touch a $ echo "- $ (ls [a-z])" -a $ echo "- = - || $ (ls [a-z] | xargs ls -l) || - = -" - = - || -rw -rw-r-- 1 Roel roel 0 sept 5 09:26 a || - =- 

Ici, nous créons d'abord un fichier vide en utilisant le toucher un commande. Par la suite, nous utilisons écho Pour sortir quelque chose que notre sous-coque $ (ls [a-z]) générera. Bien sûr, nous pouvons exécuter le LS directement et céder plus ou moins le même résultat, mais notez comment nous ajoutons - à la sortie en tant que préfixe.

Dans la commande finale, nous insérons certains caractères à l'avant et à l'extrémité du écho commande qui rend la sortie un peu plus agréable. Nous utilisons une sous-coquille pour trouver d'abord le un fichier que nous avons créé plus tôt (LS [A-Z]) puis - toujours à l'intérieur de la sous-coquille - passez les résultats de cette commande (qui ne serait que un Littéralement - je.e. le fichier que nous avons créé dans la première commande) vers le ls -l en utilisant le tuyau (|) et le xargs commande. Pour plus d'informations sur les xargs, veuillez consulter nos articles Xargs pour les débutants avec des exemples et des xargs multiples avec des exemples.

Exemple 3: Double Quotes à l'intérieur des sous-coquilles et des sous-sous-vaches!

echo "$ (echo" $ (echo "il fonctionne") "| SED'T | IT | Il sûrement | ')" Cela fonctionne sûrement 


Cool, non? Ici, nous voyons que les citations doubles peuvent être utilisées à l'intérieur de la sous-coquille sans générer d'erreurs d'analyse. Nous voyons également comment une sous-coquille peut être imbriquée dans une autre sous-coquille. Pouvez-vous analyser la syntaxe? Le moyen le plus simple est de commencer «au milieu ou au noyau de toutes les sous-coquilles» qui est dans ce cas écho "ça marche".

Cette commande sortira Ça marche À la suite de l'appel de sous-coquille $ (écho "ça marche"). Image Ça marche À la place de la sous-coquille, je.e.

echo "$ (echo" il fonctionne "| SED 'S | it | Il sûrement |')" Cela fonctionne sûrement 

Cela semble déjà plus simple. Ensuite, il est utile de savoir que le sed la commande fera un substitut (grâce au s commande juste avant le | Séparateur de commande) du texte il pour c'est sûrement. Vous pouvez lire le sed commander comme remplacer __it__ par __it sûrement__. La sortie de la sous-coquille sera doncça marche sûrement ', je.e.

écho "cela fonctionne sûrement", il fonctionne sûrement 

Conclusion

Dans cet article, nous avons vu que les sous-coquilles travailler sûrement (jeu de mots prévu), et qu'ils peuvent être utilisés dans une grande variété de circonstances, en raison de leur capacité à être insérée en ligne et dans le contexte de la commande globale. Les sous-coquilles sont très puissantes et une fois que vous commencerez à les utiliser, eh bien, il n'y aura probablement pas d'arrêt. Très bientôt, vous écrirez quelque chose comme:

$ Var = "Au revoir"; echo "Merci $ (echo" $ var "| SED 'S | ^ | et |')" | sed 'S | k | k vous |' 

Celui-ci est pour vous d'essayer de jouer avec! Merci et au revoir

Tutoriels Linux connexes:

  • Comment utiliser des sous-coquilles bash à l'intérieur des instructions IF
  • Sous-sheells Linux avancés avec des exemples
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Gestion de scripts et de processus de bash multithread au…
  • Masterring Bash Script Loops
  • Commandes Linux de base
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…