Bash:添加路径后无法调用脚本

时间:2015-11-11 03:28:30

标签: bash unix

我正在编写自己的unix脚本,所以我想为Bash添加一个新目录。我像这样添加.bash_profile。

PATH="~/Documents:${PATH}"
export PATH

在我的〜/ Documents中,有一个名为test的文件,其内容为

#!/usr/bin/env python3.5
print("hahahhah")

我也用过

chmod 755 test

使其可执行。

但是我不能直接在终端中调用它。 ./test像往常一样工作。 出了什么问题?

我改为

PATH="$HOME/Documents:${PATH}"
export PATH
没有任何反应。

FDSM_lhn@9-53:~/Documents$ test
FDSM_lhn@9-53:~/Documents$ ./test
hahahhah

解决方案: 根本原因是我有一个与默认命令同名的命令,所以它不会以任何方式工作!改名就足够了!

1 个答案:

答案 0 :(得分:3)

Tilde不会在字符串内扩展。因此,通过引用作业的右侧,可以防止它被展开,并在~变量中获得文字PATH,这对您没有任何帮助。

您有两种解决方法:

  1. 删除作业中的引号(是的,这是安全的,即使对于带有空格的$PATH值等也是如此。)

  2. 使用$HOME代替~

  3. 我更喜欢第二种解决方案,但第一种方案完全适用于这种情况。

    请注意,在进行直接分配的地方,您经常 只是删除引号并尝试使用~ 造成问题。

    在这种情况下,您最终会找到像this这样的问题,其回答类似于this,而像this这样的问题很难找到。