$ HOME和'〜'(波浪号)之间的区别?

我一直以为$HOME并且~是完全相同的,因此可以互换使用。今天,当我尝试在共享服务器上安装与memcached的python绑定

pylibmc时 ,使用的~错误给了我,但没有给我 $HOME。我想说明原因。

libmemcachedpylibmc 的要求。我在主目录下安装了 libmemcached, 因为服务器上没有root。结果,要安装

pylibmc ,我需要确保安装脚本知道在哪里可以找到 libmemcached

执行时python setup.py install --with-libmemcached=~,安装脚本运行

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \

-严格的原型-fPIC -DUSE_ZLIB -I〜/ include \

-I / usr / local / include / python2.7 -c _pylibmcmodule.c \

-o build / temp.linux-i686-2.7 / _pylibmcmodule.o -fno-strict-aliasing

这给出了找不到 libmemcached 的错误。

如果更改为--with-libmemcached=$HOME,脚本将运行

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \

-严格的原型-fPIC -DUSE_ZLIB -I / home / waterbotte / include \

-I / usr / local / include / python2.7 -c _pylibmcmodule.c \

-o build / temp.linux-i686-2.7 / _pylibmcmodule.o -fno-strict-aliasing

没有任何问题。看来问题是波浪号没有得到解决。但为什么?

回答:

Shell会替换~为用户的主目录( ;或者,如果其他用户的主目录~后跟a

,则替换其他用户的主目录/),但前提是它是单词的第一个字符。

--with-libmemcached=~``~在一开始就没有,所以外壳不理会它。

以上是 $ HOME和'〜'(波浪号)之间的区别? 的全部内容, 来源链接: utcz.com/qa/411328.html

回到顶部