![`source` 명령: `ls`가 명시적으로 나열했는데도 .csh 및 .sh 파일을 찾을 수 없습니까?](https://linux55.com/image/162783/%60source%60%20%EB%AA%85%EB%A0%B9%3A%20%60ls%60%EA%B0%80%20%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%82%98%EC%97%B4%ED%96%88%EB%8A%94%EB%8D%B0%EB%8F%84%20.csh%20%EB%B0%8F%20.sh%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
보시다시피, source
파일이 디렉터리에 분명히 있음에도 불구하고 어떤 이유로 명령에서 파일을 찾을 수 없다고 말합니다. 나는 cat
또한 출력의 첫 번째 비트를 보여주었습니다. 그것은 #!/bin/bash -p
내가 옳다고 생각하는 명령의 첫 번째 줄을 보여줍니다 source
.
freesurfer 설치 가이드(https://surfer.nmr.mgh.harvard.edu/fswiki/DownloadAndInstall)는 이 두 줄을 실행하라고 알려줍니다.
export FREESURFER_HOME=/usr/local/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh
나는 또한 이것을 시도했지만 동일한 찾을 수 없음 오류가 발생했습니다. 디렉토리가 정확하다고 확신합니다.
어리석은 질문이라면 죄송합니다. 저는 엄청난 초보자입니다. 도움을 주시면 감사하겠습니다!
답변1
쉘이 source
파일이 아닌 명령에 대해 불평하고 있습니다.
/bin/sh
귀하의 쉘은 아마도 쉘인 것 같습니다 dash
. dash
로 실행 하면 sh
POSIX 쉘이므로 source
명령이 없습니다. 이 source
명령은 표준의 확장이며 일반적으로 .
표준(점) 명령과 동일하거나 유사합니다.
/bin/sh
따라서 이러한 파일을 셸에서 가져오려면 다음 명령을 사용 하십시오 .
.
. "$FREESURFER_HOME/SetUpFreeSurfer.sh"
bash
또는 셸을 명령을 구현하는 셸로 변경하세요(예: ) source
.
또한 이 #!
줄은 외부 인터프리터가 아닌 현재 쉘에서 스크립트를 읽기 때문에 이러한 유형의 "도트 스크립트"와 관련이 없습니다.