Sie könnten die Zeichenfolge durchsuchen und ~user
durch das entsprechende Verzeichnis ersetzen.
Die POSIX Funktion wordexp
macht das, und ein paar andere Dinge
$HOME
$(echo foo)
(kann deaktiviert werden) $((3+4))
~/a ~/b
in zwei Wörter *.cpp
"~/a ~/b"
bleibt das