`source` 명령: `ls`가 명시적으로 나열했는데도 .csh 및 .sh 파일을 찾을 수 없습니까?

`source` 명령: `ls`가 명시적으로 나열했는데도 .csh 및 .sh 파일을 찾을 수 없습니까?

여기에 이미지 설명을 입력하세요.

보시다시피, 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로 실행 하면 shPOSIX 쉘이므로 source명령이 없습니다. 이 source명령은 표준의 확장이며 일반적으로 .표준(점) 명령과 동일하거나 유사합니다.

/bin/sh따라서 이러한 파일을 셸에서 가져오려면 다음 명령을 사용 하십시오 ..

. "$FREESURFER_HOME/SetUpFreeSurfer.sh"

bash또는 셸을 명령을 구현하는 셸로 변경하세요(예: ) source.

또한 이 #!줄은 외부 인터프리터가 아닌 현재 쉘에서 스크립트를 읽기 때문에 이러한 유형의 "도트 스크립트"와 관련이 없습니다.

관련 정보