J'ai un script qui commence comme ça
#!/bin/bash
VALKYRIE=~/myProjects/valkyrie
source $VALKYRIE/cluster.conf
mais quand je l'exécute, il revient
line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory
mais le fichier existe et lorsque je l'exécute, source ~/myProjects/valkyrie/cluster.conf
il fonctionne très bien. Une idée? J'ai défini une VALKYRIE
variable ailleurs, donc le code en dur dans le chemin n'est pas une option.
~
une mauvaise expansion. Lorsque j'exécute votre script avec un chemin intentionnellement faux, l'erreur ne dit pas ~
, mais étend le chemin. Pouvez-vous essayer de remplacer le ~
dans votre script par le chemin absolu? Essayez également d'exécuter ce qui suit dans un script echo ~
.
$HOME
au lieu de ~
.
~/.pam_environment
n'est pas un script shell, donc il ne fait pas les choses courantes que vous attendez d'un shell, comme l'expansion tilde et l'expansion des paramètres, donc ni ~
ni $HOME
ne sera remplacé. Si vous déplacez cette ligne à la ~/.profile
place et que vous l'ajoutez export
devant, cela devrait fonctionner.
source "${VALKYRIE}/cluster.conf"
.