我有一个像这样开始的脚本
#!/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
在其他地方设置了变量,因此路径中的硬编码不是一个选项。
答案1
~
似乎无法正确扩展。当我使用故意伪造的路径运行您的脚本时,错误不会显示~
,但会扩展路径(即/home/sparhawk/fakepath
不是)~/fakepath
。您可以尝试使用$HOME
而不是~
,或者在脚本中使用完整路径。
(我不确定为什么它~
在你的系统上不起作用,因为你的脚本对我来说运行良好。)