2016-12-27 1 views
0

Je souhaite insérer après une occurrence de chaîne spécifique un texte multiligne. Le résultat attendu est la suivante:Ajout d'un script bash de texte délimité par une tabulation multiligne avec EOF, EOT, EOL

configuration options: 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
<tab>option 12 

toutes les lignes sauf de la première sont délimitées par une patte. Je ne veux pas faire cela avec plusieurs commandes d'écho. Je préférerais EOF, EOT, EOL mais ceux-ci n'écrivent pas les onglets.

Actuellement, j'utiliser que:

cat >> /etc/conf/conf.conf <<-EOF 
    <tab>configuration options 
    <tab><tab>option 1 
    <tab><tab>option 2 
    <tab><tab>option 3 
    <tab><tab>option 4 
    <tab><tab>option 5 
    <tab><tab>option 6 
    <tab><tab>option 7 
    <tab><tab>option 8 
    <tab><tab>option 9 
    <tab><tab>option 10 
    <tab><tab>option 11 
    <tab><tab>option 12 
    EOF 

Mais le deuxième onglet est ignoré et non écrit à mon dossier.

+0

Quel est le résultat attendu? –

+0

Fournit une entrée minimale et une sortie attendue vérifiable. – Inian

Répondre

0

Retirez le tableau de bord (-) de cette ligne:

cat >> /etc/conf/conf.conf <<-EOF 

Et , peut-être, utiliser un meilleur nom pour EOF:

cat >> /etc/conf/conf.conf <<_list_of_options_ 
configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
<tab>option 12 
_list_of_options_ 
0

bash permet la syntaxe suivante, similaire à EOF où la chaîne entre guillemets simples n'est pas modifié du tout:

cat >> /etc/conf/conf.conf <<<'configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
' 
0

En fait, je l'ai trouvé comme une combinaison de la réponse ci-dessus: Afin de maintenir le delimiter onglet que je devais enlever le « - » avant EOF et de supprimer un onglet de chaque ligne:

cat >> /etc/conf/conf.conf <<EOF 
configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
EOF