Eu posso escapar de tudo de uma vez com
printf "%q\n" "$string"
Mas aqui está sua resposta:
alias esc_single_quotes="sed \"s/'/\\\\'/g\""
echo "$string" | esc_single_quotes
JC\'s alias to escape "double quotes"
ou:
alias esc_single_quotes='sed "s/'\''/\\'\''/g"'
echo "$string" | esc_single_quotes
JC\'s alias to escape "double quotes"