Chaîne multiligne dans Bash

Fumbani Banda 30 janvier 2023
  1. Utilisez here-document pour créer une chaîne multiligne dans Bash
  2. Utiliser la variable Shell pour créer une chaîne multiligne dans Bash
  3. Utilisez printf pour créer une chaîne multiligne dans Bash
  4. Utilisez echo avec l’option -e pour créer une chaîne multiligne dans Bash
  5. Utilisez echo pour créer une chaîne multiligne dans Bash
Chaîne multiligne dans Bash

Ce tutoriel montre différentes manières d’imprimer une chaîne multiligne dans un fichier en bash sans mettre d’espace supplémentaire (indentation) en utilisant here-document, la variable shell, printf, echo et echo avec Option -e.

Utilisez here-document pour créer une chaîne multiligne dans Bash

Here-document fournit un moyen interactif d’entrer une chaîne multiligne dans un fichier. Le EOF est connu sous le nom de Here Tag. Le Here Tag indique au shell que vous allez saisir une chaîne multiligne jusqu’au Here Tag puisqu’il agit comme un délimiteur. Le << est utilisé pour définir le Here Tag. Le > est utilisé pour la redirection d’entrée. Il redirige l’entrée vers le fichier spécifié, output.txt, dans notre cas.

cat << EOF > output.txt
> Hello
> World
> !
> EOF

Vérifions le contenu du fichier output.txt avec la commande cat.

cat output.txt

À partir de la sortie, nous voyons que chaque ensemble de mots a sa propre ligne et qu’il n’y a pas d’espaces supplémentaires.

Hello
World
!

Utiliser la variable Shell pour créer une chaîne multiligne dans Bash

Ici, nous utilisons une variable shell nommée greet. Nous avons affecté une chaîne multiligne à greet.

greet="Hello
> ,
> wolrd
> !"

La commande ci-dessous récupère la chaîne multiligne dans la variable shell, greet, et la redirige vers le fichier spécifié, multiline.txt, en utilisant >.

echo "$greet" > multiline.txt

Vérifiez le contenu du multiline.txt avec la commande cat.

cat multiline.txt

À partir de la sortie, nous voyons que chaque ensemble de mots a sa propre ligne et qu’il n’y a pas d’espaces supplémentaires.

Hello
,
wolrd
!

Utilisez printf pour créer une chaîne multiligne dans Bash

Nous pouvons utiliser printf avec le caractère de nouvelle ligne et rediriger la sortie vers un fichier en utilisant >. Le contenu du fichier n’a pas d’espaces supplémentaires.

#!/bin/bash

printf "Every word is on a seperate line!\n"
printf "%s\n" "Hello" "," "World" "!" > multiline.txt

Production :

Every word is on a separate line!

Imprimez le contenu de multiline.txt avec la commande cat.

cat multiline.txt

À partir de la sortie, nous voyons que chaque ensemble de mots a sa propre ligne et qu’il n’y a pas d’espaces supplémentaires.

Hello
,
World
!

Utilisez echo avec l’option -e pour créer une chaîne multiligne dans Bash

Le script bash suivant imprime les mots dans multiline.txt sans aucun espace supplémentaire. L’option -e permet l’interprétation des caractères d’échappement dans la variable greet.

#!/bin/bash

greet="Hello\n,\nWorld\n!"
echo -e $greet > multiline.txt

Imprimer le contenu de multiline.txt avec la commande cat

cat multiline.txt

À partir de la sortie, nous voyons que chaque ensemble de mots a sa propre ligne et qu’il n’y a pas d’espaces supplémentaires.

Hello
,
World
!

Utilisez echo pour créer une chaîne multiligne dans Bash

Le script ci-dessous affecte une chaîne multiligne à une variable nommée greet. Ensuite, le contenu de la variable est redirigé vers les fichiers multiline.txt à l’aide de >. Les guillemets de la variable greet préservent les nouvelles lignes.

#!/bin/bash

greet="Hello
,
World
!"
echo "$greet" > multiline.txt

Afficher le contenu de multiline.txt avec la commande cat.

cat multiline.txt

À partir de la sortie, nous voyons que chaque ensemble de mots a sa propre ligne et qu’il n’y a pas d’espaces supplémentaires.

Hello
,
World
!
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Article connexe - Bash String