Kenapa skrip bash ini
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
output ->
sed: -e expression #1, char 53: unterminated `s' command
The s
perintah dalam sed
, menggunakan sintaks khusus:
s/AAAA/BBBB/options
di mana s
perintah substitusi, AAAA
adalah regex yang ingin Anda ganti, BBBB
adalah dengan apa yang Anda inginkan untuk diganti dan options
apakah ada opsi perintah substitusi, seperti global ( g
) atau abaikan case ( i
).
Dalam kasus spesifik Anda, Anda melewatkan garis miring terakhir /
, jika Anda menambahkannya, sed
akan bekerja dengan baik:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
termasuk deskripsi lengkap dan penggunaan perintah s.
Hilang /
pada akhirnya.
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE
/
bukang
,g
adalah untuk global, yang mungkin tidak diinginkan.