Ich habe ein Skript, das so beginnt
#!/bin/bash
VALKYRIE=~/myProjects/valkyrie
source $VALKYRIE/cluster.conf
aber wenn ich es starte, kehrt es zurück
line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory
Aber die Datei existiert und wenn ich sie ausführe source ~/myProjects/valkyrie/cluster.conf
, läuft sie einwandfrei. Irgendeine Idee? Ich habe die VALKYRIE
Variable an anderer Stelle festgelegt, sodass Hardcode im Pfad keine Option ist.
~
nicht richtig expandiert. Wenn ich Ihr Skript mit einem absichtlich gefälschten Pfad ausführe, sagt der Fehler nicht ~
, sondern erweitert den Pfad. Können Sie versuchen, das ~
in Ihrem Skript durch den absoluten Pfad zu ersetzen ? Versuchen Sie außerdem, Folgendes in einem Skript auszuführen echo ~
.
$HOME
statt ~
.
~/.pam_environment
ist kein Shell-Skript, daher macht es nicht die üblichen Dinge, die Sie von einer Shell erwarten würden, wie z. B. Tilde-Erweiterung und Parameter-Erweiterung~
noch $HOME
ersetzt werden. Wenn Sie diese Zeile ~/.profile
stattdessen nach verschieben und export
vorne hinzufügen , sollte dies funktionieren.
source "${VALKYRIE}/cluster.conf"
.