根据这个答案和我自己的理解,波浪号扩展到主目录:
$ echo ~
/home/braiam
Run Code Online (Sandbox Code Playgroud)
现在,每当我希望 shell 扩展工作时,即使用诸如 的变量名$FOO
,并且不要因为意外的字符、诸如空格等而中断。应该使用双引号"
:
$ FOO="some string with spaces"
$ BAR="echo $FOO"
$ echo $BAR
echo some string with spaces
Run Code Online (Sandbox Code Playgroud)
为什么这种扩展不适用于波浪号?
$ echo ~/some/path
/home/braiam/some/path
$ echo "~/some/path"
~/some/path
Run Code Online (Sandbox Code Playgroud) 我发现越来越多的工具将可执行文件放入 ~/.local/bin。我老了,对我来说 ~/bin 是我的 $HOME 中可执行文件的地方。
这种疯狂的新时尚起源于哪里?人们为什么要这样做?它有多普遍?它在任何地方正式化吗?它不在 XDG 目录规范中。
有一个相关的问题: 哪些发行版在 $PATH 中有 $HOME/.local/bin?
对另一个问题的评论指的是https://www.python.org/dev/peps/pep-0370,它在 2008 年就已经有了: Why did this program install into ~/.local/bin ... thats the first我见过这种情况发生的时间吗?