Mam config.ini pliku z następujących treści:Konkatenowanie zmienna ciąg wewnątrz pętli for w powłoki bash
@ndbd
chcę zastąpić @ndbd
z jakiegoś innego tekstu do sfinalizowania plik. Poniżej jest mój skrypt bash Kod:
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
Zasadniczo, po prostu chcę, aby wszystkie adresy IP w określonym formacie, a następnie zastąpić @ndbd
z wygenerowanym podciągu.
Jednak moja pętla for nie wydaje się łączyć wszystkich danych z $ip_ndbd
, tylko pierwszego elementu na liście.
Więc zamiast się:
[ndbd]
HostName=108.166.104.204
[ndbd]
HostName=108.166.105.47
[ndbd]
HostName=108.166.56.241
Dostaję:
[ndbd]
HostName=108.166.104.204
Jestem całkiem pewien, że istnieje lepszy sposób to napisać, ale nie wiem jak.
Byłbym wdzięczny za pomoc.
Z góry dziękuję.
Szereg jest lepszy, wystarczy je przełączyć w odpowiedni sposób. – caesarsol