Por que esse script bash
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
saída ->
sed: -e expression #1, char 53: unterminated `s' command
O s
comando in sed
usa uma sintaxe específica:
s/AAAA/BBBB/options
onde s
está o comando de substituição, AAAA
é o regex que você deseja substituir, BBBB
está com o que deseja que seja substituído e options
é uma das opções do comando de substituição, como global ( g
) ou ignorar maiúsculas e minúsculas ( i
).
No seu caso específico, estava faltando a barra final /
, se você a adicionar, sed
funcionará perfeitamente:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
inclui a descrição completa e o uso do comando s.
Desaparecido /
no final.
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE
/
not theg
,g
é global, o que pode não ser desejado.