我有一个像这样开始的脚本
#!/bin/bash
VALKYRIE=~/myProjects/valkyrie
source $VALKYRIE/cluster.conf
但是当我运行它返回
line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory
但是该文件存在,并且在我运行source ~/myProjects/valkyrie/cluster.conf
时可以正常运行。任何的想法?我在VALKYRIE
其他地方设置了变量,因此无法在路径中添加硬编码。
不,没有帮助。
—
Khoi
我认为这与
—
Sparhawk
~
无法正确扩展有关。当我使用故意伪造的路径运行脚本时,错误不会显示~
,而是会扩展路径。您可以尝试用~
绝对路径替换脚本中的吗?另外,尝试在script中运行以下命令echo ~
。
您也可以尝试
—
Sparhawk
$HOME
代替~
。
@Khoi解释了这一点。
—
geirha 2013年
~/.pam_environment
不是shell脚本,因此它不会执行shell所期望的普通操作,例如波浪号扩展和参数扩展,因此~
也$HOME
不会被替换。如果将那条线移到~/.profile
另一条线并添加export
到前面,它应该可以工作。
source "${VALKYRIE}/cluster.conf"
。