Using SED in a ssh command on a remote node
10,276
I suggest to replace
ssh $i 'sed -i \'s/172.16.48.70/172.20.54.10/g\' /etc/hosts;'
by
ssh "$i" 'sed -i "s/172.16.48.70/172.20.54.10/g" /etc/hosts'
If you absolutely want to use single quotes:
ssh "$i" 'sed -i '"'"'s/172.16.48.70/172.20.54.10/g'"'"' /etc/hosts'
Author by
mahmood
Updated on June 14, 2022Comments
-
mahmood almost 2 years
I wrote a script to ssh to some nodes and run a
sed
command inside the node. The script looks likeNODES="compute-0-3" for i in $NODES do echo $i ssh $i 'sed -i \'s/172.16.48.70/172.20.54.10/g\' /etc/hosts;' done
However, the error is
unexpected EOF while looking for matching `'' syntax error: unexpected end of file
It seems that the character
'
is not treated as the begining of ased
command. -
Cyrus over 7 yearsThis might help: How to escape single-quotes within single-quoted strings?