$ HOME和'〜'(波浪号)之间的区别?
我一直以为$HOME
并且~
是完全相同的,因此可以互换使用。今天,当我尝试在共享服务器上安装与memcached的python绑定
pylibmc时 ,使用的~
错误给了我,但没有给我 $HOME
。我想说明原因。
libmemcached 是 pylibmc 的要求。我在主目录下安装了 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