linux - Tulis skrip untuk mengubah suai maklumat konfigurasi dalam fail, ralat pelaksanaan
欧阳克
欧阳克 2017-07-04 13:45:27
0
1
757

Terdapat terutamanya tiga fail test.cnf test.sh test.txt
Laksanakan test.sh untuk membaca konfigurasi test.cnf untuk mengubah suai kandungan test.txt Semasa pelaksanaan, konfigurasi telah berjaya dibaca tetapi tidak ditemui apabila sed dilaksanakan.
sed di sini hanyalah untuk menyahpepijat tanpa mengubah suai test.txt, ia hanya memaparkan hasil test.txt

[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}}

Ralat pelaksanaan dipaparkan semasa nyahpepijat;

[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
欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

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

Kaedah lain:

awk -F= -vOFS='=' 'NR==FNR{a[]=;next}{for(i in a)if( ~ i)sub(i,a[i],)}1' test.cnf test.txt
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!