A expansão til não funciona depois que a variável é expandida, portanto, se você colocar um til literal em var
, ele será um til literal para mkdir
. (Observe como a mensagem de erro de mkdir
tem um til literal, não o caminho real do seu diretório pessoal.)
E, como você coloca o til entre aspas na tarefa, ele também não se expande. Se não estiver entre aspas, faz:
$ var="~/Music"; echo $var
~/Music
$ var=~/"Music"; echo $var
/home/me/Music
Claro, você pode usar apenas $HOME
:
$ var="$HOME/Music"; echo $var
/home/me/Music