제대로하지 않은 것 같습니다.
세 번째 작업을 시도했지만 잘못된 구문을 사용하고 있다고 생각합니다. 현재보고있는 것과 같은 오류를 생성 할 수있는 5 가지 일반적인 실수는 다음과 같습니다.
대신 공백을 사용합니다 =
. export NAME value
부정확하다; value
그런 다음 내보낼 후속 변수의 이름으로 해석됩니다.
(때문에 발생 export NAME1 NAME2
이다 여러 변수를 내보내기위한 정확한 구문).
주위에 공백을두기 =
. 많은 프로그래밍 언어에서, 대부분 공백으로 연산자를 채우는 것이 유효하고 문체 적으로 선호됩니다. 그러나 셸 스크립트 (또는 셸 명령을 실행하는 다른 상황)에서 변수에 값을 할당하려면 허용되지 않습니다. NAME = value
( export
명령 또는 다른 방식으로) 작동하지 않습니다. 를 사용해야합니다 NAME=value
.
( export NAME = value
수출 변수에 대한 시도라는 이름 NAME
, =
그리고 value
. 다행히이라는 변수를 수출하려고하면 자동으로하기 때문에 성공한 것처럼 결코 =
대조적으로. 구문 오류입니다 export NAME= value
작업에 나타나지만 할당하지 않습니다 value
에 NAME
, 그것은 빈 할당 --instead 길이가 0 인 문자열을 가져 NAME
와서 내보내고 변수를 별도로 내 보냅니다 value
. 둘 다 일반적인 실수입니다.)
변수 값의 일부를 공백으로 분리합니다. 환경 변수 에는 공백 이 포함될 수 있지만 실제로는 환경 변수에서 필드 구분 기호로 거의 사용되지 않습니다. 단일 변수에 의도적으로 여러 경로가 포함 된 경우 일반적으로 경로 :
를 구분하는 데 사용됩니다.
변수를 지정할 때 공백을 인용하지 않습니다. 때로는 환경 변수의 값에 공백이 있어야합니다. 예를 들어, 실제로 공백이 포함 된 디렉토리의 이름 일 수 있습니다. 이 경우 공백을 인용해야합니다.
이를 수행하는 한 가지 방법은 앞에을 두는 것입니다 \
. cd 명령에 전달 된 괄호를 어떻게 보호 할 수 있습니까?를 참조하십시오 . 및 삭제 파일 수 없습니다 다른 방법에 대한 정보 - 답변에서 제시 한 방법도 문제는 환경 변수에 할당하는 방법에 대한 구체적 경우에도 적용됩니다.
예를 들어, 다음과 같이 환경 변수 SILLYPATH
를 값 으로 내보내는 몇 가지 방법이 있습니다 /home/ek/silly name/bin
.
export SILLYPATH=/home/ek/silly\ name/bin
export SILLYPATH='/home/ek/silly name/bin'
export SILLYPATH="/home/ek/silly name/bin"
셸에서 사용하거나 널리 사용되는 환경 변수에 할당해야하는 폴더에 공백이 포함되어 있으면 이름을 바꾸면 도움이 될 수 있습니다. (그러나 때로는 비현실적이거나 바람직하지 않습니다.)
아무것도 할 필요가 없을 때 변수 할당 및 / 또는 내보내기 이것은 일종의 메타 실수입니다. 특정 기술 문제는 종종 위의 문제 중 하나이지만 해결 방법은 문제를 해결하는 것이 아니라 문제를 일으키는 선 또는 그 일부를 제거하는 것입니다. .bashrc
물론 코드를 무차별 적으로 제거하지 마십시오 . 그러나 export
실수로 실수가 추가되었거나 의도하지 않은 코드가 실수로 많을 수 있습니다. 예를 들어, 다음과 같이 작성한다고 가정하십시오.
echo 'export PATH=~/some.bin:"$PATH"' >>~/.bashrc; . ~/.bashrc
추가 .bashrc
한 다음 다시 제공하십시오. 그러나 대신 다음과 같이 썼다고 가정하십시오.
echo 'export PATH=~/some.bin:"$PATH" . ~/.bashrc' >>~/.bashrc # WRONG!
그런 다음 export
명령은 단지의 증강 값을 내보낼 것 PATH
뿐만 아니라라는 이름의 수출 변수를 시도 할 것입니다 .
그리고 당신이 원하지 않는 무엇이다. 변수 이름에 금지 된 문자가 포함되어 있으므로 새 대화식 bash 쉘을 시작할 때마다 오류가 발생합니다./home/your-username/.bashrc
이 문제를 방지하려면, 내가 편집을 제안 .bashrc
편집기에서 (예를 들어 nano ~/.bashrc
, gedit ~/.bashrc
)보다는 그것의 끝 출력을 리디렉션보다 >>
.