web-dev-qa-db-fra.com

Comment insérer une nouvelle ligne dans un script Linux Shell?

Je veux insérer une nouvelle ligne entre plusieurs instructions d'écho. J'ai essayé echo "hello\n", mais cela ne fonctionne pas. Il imprime \n. Je veux la sortie désirée comme ceci:

Create the snapshots

Snapshot created
98
user3086014

Le moyen le plus simple d'insérer une nouvelle ligne entre les instructions echo consiste à insérer un echo sans arguments, par exemple:

echo Create the snapshots
echo
echo Snapshot created

C'est-à-dire que echo sans aucun argument affichera une ligne vierge.

Une autre alternative consiste à utiliser une seule instruction echo avec l'indicateur -e et des caractères de nouvelle ligne incorporés \n:

echo -e "Create the snapshots\n\nSnapshot created"

Cependant, ceci n'est pas portable, car l'indicateur -e ne fonctionne pas de manière uniforme sur tous les systèmes. Une meilleure façon de le faire consiste à utiliser printf:

printf "Create the snapshots\n\nSnapshot created\n"

Cela fonctionne de manière plus fiable dans de nombreux systèmes, même si ce n'est pas compatible POSIX. Notez que vous devez ajouter manuellement un \n à la fin, car printf n'ajoute pas automatiquement de nouvelle ligne, contrairement à echo.

156
janos

Utilisez cette déclaration echo

 echo -e "Hai\nHello\nTesting\n"

La sortie est

Hai
Hello
Testing
57
Kalanidhi
echo $'Create the snapshots\nSnapshot created\n'
18
Ohad Cohen

Vous pouvez utiliser la commande printf (1), par exemple. comme

printf "Hello times %d\nHere\n" $[2+3] 

La commande printf peut accepter les arguments et requiert une chaîne de contrôle de format similaire (mais pas exactement identique) à celle du standard C --- printf (3) fonction ...

14