Dans Bash, printf
peut faire l'évasion pour vous :
$ a=''\''"\;:#[]{}()|&^[email protected]!?, .<>abc123'
$ printf -v var "%q" "$a"
$ echo "$var"
\'\"\\\;:#\[\]\{\}\(\)\|\&\^\[email protected]\!\?\,\ .\<\>abc123
Je vous laisse décider si c'est assez agressif.