Почему этот скрипт
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
вывод ->
sed: -e expression #1, char 53: unterminated `s' command
Почему этот скрипт
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
вывод ->
sed: -e expression #1, char 53: unterminated `s' command
Ответы:
Команда s
в sed
, использует определенный синтаксис:
s/AAAA/BBBB/options
где s
- это команда подстановки, AAAA
это регулярное выражение, которое вы хотите заменить, BBBB
с тем, на которое вы хотите заменить его, и options
любая из опций команды подстановки, например global ( g
) или ignore case ( i
).
В вашем конкретном случае вы пропустили последний слеш /
, если вы добавите его, все sed
будет работать нормально:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
включает в себя полное описание и использование команды s.
/
не дляg
,g
это для глобального, который не может быть желательным.