Ho un config.ini file con il seguente contenuto:concatenamento variabile stringa all'interno di un ciclo for nella bash shell
@ndbd
voglio sostituire @ndbd
con qualche altro testo per finalizzare il file. Qui di seguito è il mio codice di script bash:
ip_ndbd=(108.166.104.204 108.166.105.47 108.166.56.241)
ip_temp=""
for ip in $ip_ndbd
do
ip_temp+="\n\[ndbd\]\nHostname=$ip\n"
done
perl -0777 -i -pe "s/\@ndbd/$ip_temp/" /var/lib/mysql-cluster/config.ini
sostanza, voglio solo per ottenere tutti gli indirizzi IP in un formato specifico, e quindi sostituire @ndbd
con la stringa generata.
Tuttavia, il mio ciclo for non sembra concatenare tutti i dati da $ip_ndbd
, solo il primo elemento nell'elenco.
Così, invece di ottenere:
[ndbd]
HostName=108.166.104.204
[ndbd]
HostName=108.166.105.47
[ndbd]
HostName=108.166.56.241
sto ottenendo:
[ndbd]
HostName=108.166.104.204
Sono abbastanza sicuro che c'è un modo migliore per scrivere questo, ma io non so come.
Apprezzerei un po 'di assistenza.
Grazie in anticipo.
la matrice è migliore, devi solo ciclarla nel modo giusto. – caesarsol