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.confil fonctionne très bien. Une idée? J'ai défini une VALKYRIEvariable 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 ~.
$HOMEau lieu de ~.
~/.pam_environmentn'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 $HOMEne sera remplacé. Si vous déplacez cette ligne à la ~/.profileplace et que vous l'ajoutez export devant, cela devrait fonctionner.
source "${VALKYRIE}/cluster.conf".