我有一个像这样开始的脚本
#!/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"。