| Deutsch English Français Italiano | 
| <87wnhwwgnq.fsf@izac.org> View for Bookmarking (what is this?) Look up another Usenet article | 
Path: ...!eternal-september.org!reader02.eternal-september.org!news.trigofacile.com!news.ortolo.eu!news.izac.org!reader
From: Benoit Izac <use.reply.to@INVALID.ADDRESS>
Newsgroups: fr.comp.os.linux.configuration
Subject: Re: [Script shell] Chaine repartie sur plusieurs lignes avec indentation
Date: Tue, 15 Feb 2022 11:47:05 +0100
Message-ID: <87wnhwwgnq.fsf@izac.org>
References: <sufo10$ea4$1@ns507557.dodin.fr.nf>
	<j718hjFdptsU1@mid.individual.net>
Reply-To: benoit.izac@free.fr
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: keg.izac.org;
	logging-data="3923360"; mail-complaints-to="usenet@izac.org"
Bytes: 1899
Lines: 40
Bonjour,
Le 15/02/2022 à 10:02, pehache a écrit dans le message
<j718hjFdptsU1@mid.individual.net> :
>> Un script shell contient une chaîne longue que je souhaite étaler
>> sur plusieurs lignes pour limiter la longueur des lignes du script.
>> Pour le moment je fais ça pour recoller les morceaux :
>> 'partie 1'\
>> 'partie 2'\
>> 'partie 3'
>> Mais je ne peux pas faire d'indentation sinon les morceaux sont
>> traités comme des chaînes distinctes, donc ce n'est pas aligné avec
>> le reste du code et c'est laid.
>> Voyez-vous d'autres solutions qui permettent l'indentation, sans
>> utiliser de variable ?
>
> Si tu acceptes qu'une espace soit insérée entre les parties (je ne
> sais pas pourquoi) :
>
>     $(echo 'partie 1'\
>            'partie 2')
echo voit deux arguments donc les sépare par une espace.
cmd "$(printf '%s' \
    'partie 1' \
    'partie 2')"
Une autre solution (il faut que ce soit des tabulations devant pour que
ça fonctionne) :
cmd "$(tr -d '\n' <<-'EOF'
	partie 1
	partie 2
	partie 3
EOF
)"
-- 
Benoit Izac