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 VALKYRIEVariable 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 ~.
$HOMEstatt ~.
~/.pam_environmentist 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 $HOMEersetzt werden. Wenn Sie diese Zeile ~/.profilestattdessen nach verschieben und export vorne hinzufügen , sollte dies funktionieren.
source "${VALKYRIE}/cluster.conf".