현재 디렉터리에 별칭을 정의할 수 없습니까("내보내기" 사용)? 그렇게 하면 "찾을 수 없음" 메시지가 나타납니다.

현재 디렉터리에 별칭을 정의할 수 없습니까("내보내기" 사용)? 그렇게 하면 "찾을 수 없음" 메시지가 나타납니다.

총 길이 DR: export별칭/변수는 명령을 사용하여 정의해야 하며 전체 경로를 사용할 수 없으며 상대 경로를 사용하면(즉, 할당하려는 디렉터리 바로 위에 별칭을 정의하는 경우) 오류가 발생합니다 Not found. 제가 할 수 있는 다른 일이 있나요?

다음 두 명령을 실행해야 합니다.

export FREESURFER_HOME=/usr/local/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.sh

단지 그 시스템이 내 것이 아니어서 권한이 없을 뿐입니다 /usr/local/freesurfer. 그래서 임시로 freesurfer라는 프로그램을 다른 곳에 설치했습니다(전체 설치 경로는 /Raid6/users/bob/Downloads/freesurfer).

그래서 나는 freesurfer 디렉토리에 별칭을 설정하려고 했습니다. ( 파일이 이미 정의되어 있고 그것을 사용한다고 가정하기 FREESURFER_HOME때문에 이 단계를 수행해야 합니다 .SetUpFreeSurfer.sh

다음과 같이 전체 경로를 사용한 다음 export FREESURFER_HOME=/Raid6/users/bob/Downloads/freesurfer다음을 입력 $FREESURFER_HOME하고 Enter 키를 누르면 "권한 거부" 오류가 발생합니다.

그래서 "다운로드" 디렉토리로 이동하여 입력하면 ls해당 디렉토리 등이 나열됩니다 freesurfer. 그런 다음 을 시도 export FREESURFER_HOME=freesurfer하지만 그렇게 한 후 $FREESURFER_HOMEEnter를 입력하고 누르면 메시지가 나타납니다 freesurfer: not found.

여기에서 무엇을 해야 할지 잘 모르겠거나 도움을 주시면 대단히 감사하겠습니다!

답변1

다 포기해 수출도지시하다.

FREESURFER_HOME=freesurfer

다른 언어에서는 이것은 단지 $FREESURFER_HOME = "freesurfer"문자열 할당일 뿐입니다. Bash에서는 문자열을 참조할지 변수 값을 참조할지 여부를 각 용도에 따라 결정합니다.

$  echo FREESURFER_HOME
FREESURFER_HOME

$  echo $FREESURFER_HOME
freesurfer

달러 기호는 bash에게 해당 이름의 값/내용을 의미한다고 알려주는 방법입니다.

변수를 설정한 후 사용할 수 있습니다(달러 기호 포함).

source $FREESURFER_HOME/SetUpFreeSurfer.sh변수를 사용하려는 목적입니다. 수정된 fs-home 디렉토리에서 스크립트를 실행/가져오려고 합니다. 통화의 경우 source freesurfer/SetUpFreeSurfer.sh내용이 "freesurfer"인 것과 완전히 동일합니다.

명령(첫 번째 단어는 command!)을 입력하면 $FREESURFER_HOME"freesurf"(또는 무엇이든) 값으로 확장되며 이는 기존 명령이 아닙니다(-> 찾을 수 없음).

다른 경우에는 변수의 유효한 명령에 나쁜 일이 발생할 수 있습니다.

$  cmd='echo hello'
$  $cmd
hello

여기서는 아무 일도 일어나지 않습니다. 우호적인 명령입니다. 하지만 이건앨리어싱적어도 의심스럽습니다. 그렇게 하는 사람은 없을 것 같아요.파괴적인. 정상적인 경우별명추가로 내장된 기능이 있습니다:

$  alias cmd='echo hello'
$  cmd
hello

( $여기에는 표지판이 없습니다. 훨씬 좋습니다!)


(아마도 변수를 전파하려면 내보내야 할 것입니다. 이러한 사실은 전혀 변경되지 않습니다. 다시 넣으십시오!)

답변2

더 쉬운 옵션은 ln -s /usr/local/freesurfer freesurfer를 사용하여 freesurfer 디렉토리를 가리키는 심볼릭 링크를 만드는 것입니다.

관련 정보