Heim  >  Fragen und Antworten  >  Hauptteil

Linux – Schreiben Sie ein Skript, um die Konfigurationsinformationen in der Datei zu ändern, Ausführungsfehler

Es gibt hauptsächlich drei Dateien test.cnf test.sh test.txt
Führen Sie test.sh aus, um die Konfiguration von test.cnf zu lesen und den Inhalt von test.txt zu ändern. Während der Ausführung wurde die Konfiguration erfolgreich gelesen, aber nicht gefunden als sed hingerichtet wurde.
sed hier dient nur zum Debuggen, ohne test.txt zu ändern, es zeigt nur die Ergebnisse von test.txt an

[root@localhost /tmp]# head -100 test*
==> test.cnf <==
yy=123
ppp=456

==> test.sh <==
function myconf(){

source test.cnf
awk -F'=' '{print }' test.cnf|while read myline;do sed s/{{$myline}}/${$myline}/g test.txt;done
}
myconf

==> test.txt <==
uuu={{yy}}
ooo={{ppp}}

Ausführungsfehler werden während des Debuggens angezeigt;

[root@localhost /tmp]# bash -x test.sh
+ myconf
+ source test.cnf
++ yy=123
++ ppp=456
+ read myline
+ awk -F= '{print }' test.cnf
test.sh: line 4: s/{{$myline}}/${$myline}/g: bad substitution
欧阳克欧阳克2663 Tage vor772

Antworte allen(1)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-07-04 13:47:27

     while read a b;do sed -n "s/$a/$b/p" test.txt;done < <(awk -F= '{print $1,$2}' test.cnf)

    其它方法:

    awk -F= -vOFS='=' 'NR==FNR{a[$1]=$2;next}{for(i in a)if($2 ~ i)sub(i,a[i],$2)}1' test.cnf test.txt

    Antwort
    0
  • StornierenAntwort