Чому саме цей баш сценарій
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
) або ігнорувати 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
є для глобального, що може бути не бажаним.