Perché questo script bash
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
Perché questo script bash
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
Risposte:
Il s
comando in sed
, utilizza una sintassi specifica:
s/AAAA/BBBB/options
dove si s
trova il comando di sostituzione, AAAA
è la regex che si desidera sostituire, BBBB
è con ciò con cui si desidera che venga sostituito ed options
è una delle opzioni del comando di sostituzione, come global ( g
) o ignore case ( i
).
Nel tuo caso specifico, ti mancava la barra finale /
, se la aggiungi sed
funzionerà perfettamente:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
include la descrizione completa e l'uso del comando s.
/
non ilg
,g
è per il globale che potrebbe non essere desiderato.