Try replacing ~
with $HOME
. Tilde expansion only happens when the tilde is unquoted. See info "(bash) Tilde Expansion"
.
You could also do file=~/Desktop
without quoting it, but if you ever replace part of this with something with a field separator in it, then it will break. Quoting the values of variables is probably a good thing to get into the habit of anyway. Quoting variable file=~/"Desktop"
will also work but I think that is rather ugly.
Another reason to prefer $HOME
, when possible: tilde expansion only happens at the beginnings of words. So command --option=~/foo
will only work if command
does tilde expansion itself, which will vary by command, while command --option="$HOME/foo"
will always work.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…