Sujet : Re: [Script shell] Chaine repartie sur plusieurs lignes avec indentation
De : use.reply.to (at) *nospam* INVALID.ADDRESS (Benoit Izac)
Groupes : fr.comp.os.linux.configurationDate : 15. Feb 2022, 11:47:05
Autres entêtes
Message-ID : <87wnhwwgnq.fsf@izac.org>
References : 1 2
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