Die Shell führt einen einzigen Durchgang beim Erweitern von Parametern durch, also $user
erweitert wird, aber das vorangehende ~
wird dann nicht erweitert. Um die Eingabezeile neu zu analysieren, verwenden Sie eval
:
...
eval sudo du -sh ~$user
...