문제

ENV 파일 중 하나를 소싱 할 때 일부 문제가 발생합니다 (일련의 변수 내보내기)

예를 들어:

...
export MY_ROOT=/Soft/dev/blah/blah
export MY_BIN=${MY_ROOT}/bin
...

결과

$. my_env.sh
$echo $MY_BIN
/bint/dev/blah/blah

=> "/bin"은 변수의 시작을 접미사하는 대신 덮어 쓰는 것 같습니다.

아이디어가 있습니까?

그건 그렇고이 파일을 소스 할 때마다 오류 메시지 가보고됩니다.

": Command not found"

이상한 일입니다.이 메시지는 전체 내용을 주석하더라도 나타납니다.

처음에 호출 된 쉘은 좋아 보인다 #!/bin/sh, 또는 #!/bin/bash.

제어 캐릭터는 어떻습니까? Linux에서 스크리닝하는 방법?

도움이 되었습니까?

해결책

파일의 줄 엔딩을 수정합니다.

dos2unix my_env.sh

어쨌든 현재 쉘에서 실행되기 때문에 공급되는 파일에 Shebang이 필요하지 않습니다. 그러나 의견으로는 인간 독자에게 유익 할 수 있습니다.

다른 팁

": 명령을 찾지 못한다"는 MS Wind 예를 들어 WebCV를 사용하여 체크 아웃하고 메모장 또는 WordPad를 사용하여 수정 한 다음 다시 제출했습니다.

([CTRL-M] 실행 파일을 찾을 수 없다고 불평하고 있습니다. 이는 UNIX/LINUX에 대한 매우 불편하고 다소 의심스러운 파일 이름이지만 완벽하게 유효합니다).

GNU를 통해 파일을 실행하십시오 cat -A 아니면 그 od -x 또는 hexdump 이것들을 보는 명령 (그리고 내 진단을 확인하거나 ... tr -d 시스템에 대한 적절한 인용문 및 쉘 "Verbatim"처리. (예를 들어 tr -d '[Ctrl-V],[Ctrl-M]' 일반적인 Linux 시스템의 Bash 아래).

버전에 따라 tr 사용할 수 있습니다. tr -d '\r' 또는 tr -d \015 (015는 CR의 Octal, "Carriage Return"또는 ^M --- MS-DOS를 라인 종료로 사용하는 데 사용되는 MS-DOS는 MS-DOS가 포기한 심연에서 썩을 수있는 많은 이유 중 하나입니다. 상호 운용성과 관련하여. 단일 문자의 라인 터미네이터는 다른 사람에게는 실제 문제를 일으키지 않지만 주류 컴퓨팅의 다른 모든 것이이 단일 문자를 사용했을 때 실제 변환 문제를 일으킨다).

오 예, vim 편리합니다 set ff (일명 set fileformat UNIX, MACOS 및 MS-DOS 라인 종료 규칙을 처리 할 수있는 옵션 vim 어떤 플랫폼에 있든 상관없이. 나는 기억하는 것 같다 vim 기본값은 파일이 사용중인 라인 종료 유형을 감지하고 변경되지 않은 상태로 두는 것입니다 (물론 새 파일에 대해 플랫폼의 기본으로 기본값).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top