Salut
Je suis en galère sur une boucle FOR avec le script auto et je cherche une piste

Ça va pas être simple à expliquer mais je tente le coup....
Imaginons qu'on ait un fichier test.sh:
root @NGINXWEB@/seedbox-manager/public;
le but étant de remplacer @NGINXWEB@ par le variable qui contient le chemin qui va bien. jusqu'à là pas de soucis ça passe:
#!/bin/bash
NGINXWEB="/var/www"
sed -i "s|@NGINXWEB@|$NGINXWEB|g;" /home/dtc/test.sh
Le problème maintenant, imaginons qu'on ait plusieurs lignes à modifier sur le même modèle, on va pas multiplier les SED pour rien...
C'est là que ça coince un peu, je suis parti sur un FOR et je trouve pas la formule magique.
donc notre fichier par exemple:
location ^~ / {
root @$NGINXBASE@;
include @$NGINXCONFD@/php.conf;
l'idée de base, ce serait ça
#!/bin/bash
NGINXBASE="/Var/www/base"
NGINXCONFD="/etc/nginx/conf.d"
for VAR in '$NGINXBASE' '$NGINXCONFD'; do
sed -i "s|@$VAR@|$VAR|g;" /home/dtc/test.sh; done
ou
#!/bin/bash
NGINXBASE="/Var/www/base"
NGINXCONFD="/etc/nginx/conf.d"
for VAR in "$NGINXBASE" "$NGINXCONFD"; do
sed -i "s|@$VAR@|$VAR|g;" /home/dtc/test.sh; done
En fonction du simple ou double quote ( in '$NGINXBASE' ou in "$NGINXBASE" ) , FOR va interpréter ou pas le variable. et dans les deux cas ça plante avec le SED.
J'ai besoin que le premier
|@VAR@| cherche l'expression $NGINXTRUC "brut" et que le deuxième
|$VAR| prenne bien le variable et je ne trouve pas de ruse, c'est l'un ou l'autre. J'ai testé plein de choses mais rien à faire...
Alors toutes les pistes même les plus farfelu sont les bienvenues (FOR ou pas), et même si ça ressemble au lancement d'Apollo11.
Je suis là dessus depuis deux jours quand même, Google saigne du nez, donc ça commence à m'agacer un peu ^^
Ex.