이런 식으로 시작하는 스크립트가 있습니다
#!/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
~
제대로 확장되지 않는 것과 관련이 있다고 생각합니다 . 의도적으로 가짜 경로로 스크립트를 실행하면 오류가 나타나지 않지만 ~
경로가 확장됩니다. ~
스크립트에서를 절대 경로로 바꾸어 볼 수 있습니까 ? 또한 스크립트에서 다음을 실행하십시오 echo ~
.
$HOME
대신에 시도 할 수도 있습니다 ~
.
@Khoi 그것은 그것을 설명합니다.
—
geirha
~/.pam_environment
은 쉘 스크립트가 아니므로 물결표 확장 및 매개 변수 확장과 같이 쉘에서 예상되는 일반적인 작업을 수행하지 않으므로 대체 ~
하거나 $HOME
대체 하지 않습니다 . 해당 줄을 ~/.profile
대신 이동하고 export
앞에 추가 하면 작동합니다.
source "${VALKYRIE}/cluster.conf"
.