Utilisez une extension de paramètre pour modifier tous les caractères de l'espace pour les nouvelles lignes:
$ foo='abc def ghi'
$ echo "${foo// /$'\n'}"
abc
def
ghi
Utilisation d'une extension des paramètres évite de créer un nouveau processus, pas même une commande intégrée.
Si vous le pouvez, vous feriez mieux de sauvegarder les valeurs dans un tableau:
$ input=(192.168.0.100 10.0.0.1 192.168.0.101)
De cette façon, vous avez un contrôle complet sur la façon dont le shell sépare les mots, et vous n'avez pas encore invoquer une commande externe.
$ SAVE_IFS="$IFS"
$ IFS=$'\n'
$ echo "${input[*]}"
192.168.0.100
10.0.0.1
192.168.0.101
Il doit y avoir une faute de frappe. Il n'y a aucun moyen que le premier caractère de cette expansion puisse être un espace à moins que vous ne l'enveloppiez entre guillemets. – kojiro
votre droit, thanx – user2266492
Vous devez toujours * citer * la chaîne entière; sinon, tout ce qui provient du second jeton est interprété comme une * commande * (au moins dans bash 3.2.48). – mklement0