当寻找的路径,可执行文件或检查,如果你在Unix shell中输入命令的名称会发生什么,有不同的公用事业过多(which
,type
,command
,whence
,where
,whereis
,whatis
,hash
,等)。
我们经常听说which
应该避免。为什么?我们应该用什么来代替?
根据这个答案和我自己的理解,波浪号扩展到主目录:
$ 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)