Tại sao tập lệnh bash này
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
đầu ra ->
sed: -e expression #1, char 53: unterminated `s' command
Tại sao tập lệnh bash này
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
đầu ra ->
sed: -e expression #1, char 53: unterminated `s' command
Câu trả lời:
Các s
lệnh trong sed
, sử dụng một cú pháp cụ thể:
s/AAAA/BBBB/options
trong đó s
là lệnh thay thế, AAAA
là biểu thức chính mà bạn muốn thay thế, BBBB
là với những gì bạn muốn thay thế bằng và options
là bất kỳ tùy chọn nào của lệnh thay thế, chẳng hạn như global ( g
) hoặc bỏ qua trường hợp ( i
).
Trong trường hợp cụ thể của bạn, bạn đã bỏ lỡ dấu gạch chéo cuối cùng /
, nếu bạn thêm nó, sed
sẽ hoạt động tốt:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
bao gồm mô tả đầy đủ và sử dụng lệnh s.
/
không phải làg
,g
là dành cho toàn cầu mà có thể không được như mong muốn.