bash: '내보내기: 명령을 찾을 수 없습니다

bash: '내보내기: 명령을 찾을 수 없습니다

새 터미널을 열 때마다 오류가 발생합니다.

오류: "bash: '내보내기: 명령을 찾을 수 없습니다."

그냥 내보내기 all_proxy=""를 복사하고 ALL_PROXY=""를 터미널에 내보낸 다음 새 터미널을 열면 그림과 같은 상황이 나타납니다.

사진은 다음과 같습니다.

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

다음 명령을 입력합니다.

grep export ~/.bashrc

산출:

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

다음 명령을 입력합니다.

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

산출:

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

답변1

.bashrc 파일을 편집한 것 같습니다.

내가 입력하면 이 오류를 정확하게 재현할 수 있습니다.

'‘export'        

내 .bashrc의 마지막 줄로

그것을 확인하려면 실행하십시오.

grep export ~/.bashrc

위와 같은 출력이 나오면 grep~/.bashrc 파일에서 편집하세요.

편집: 마지막 게시물 편집에서 'export and Removal them from ~/.bashrc'로 시작하는 2줄이 있는 것을 볼 수 있습니다.

답변2

명령을 있는 그대로 복사하여 붙여넣었다고 가정하면 U+2018에서 ‘export해당 명령을 찾을 수 없다고 불평합니다.왼쪽 작은따옴표'비ASCII 문자(ASCII 아포스트로피/작은따옴표(U+0027) 또는 ASCII `백틱/악센트(U+0060) 문자와 혼동하지 마십시오).

이 문자는 어떤 면에서도 특별하지 않으므로 bash명령줄은 다음과 같습니다.

‘export foo=bar’

( U+2019, 오른쪽에 작은따옴표)

‘export인수를 사용하여 명령을 실행하는 것으로 해석됩니다 foo=bar’. 당신은 쓴 적이 있습니까:

'export foo=bar'

대신 U+2018 및 U+2019는 ASCII 아포스트로피로 대체됩니다. 이는 인용 연산자이기 때문에 특수 문자 이며 인수 없이 명령이 실행되는 bash것처럼 처리됩니다 . export foo=bar그런 명령은 없습니다. 그것은 당신도 원하는 것이 아닙니다.

당신이 원하는

export foo=bar

또는

'export' 'foo=bar'

즉, 매개변수를 export사용하여 명령을 실행합니다 foo=bar.

여기서 U+2018 문자(있는 경우 해당 U+2019 문자) ~/.bashrc를 삽입한 위치에서 제거해야 합니다. 이 코드를 어디에서 복사하여 붙여넣어도 해당 문자는 복사되지 않습니다.

해당 가짜 명령이 도입된 위치가 아닌 경우를 찾으려면 ~/.bashrc(최근 편집 내용에서 해당 명령이 ~/.bashrc실제로 코드에 있는 것으로 표시되지만) 다음을 실행해 볼 수 있습니다.

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

(그러나 bash-4.4 이상으로 실행되는 쉘은 $PS4이러한 를 무시합니다 root. 이는 귀하의 경우인 것 같습니다. 따라서 ++파일 이름 대신 파일 이름과 줄 번호가 표시됩니다.)

관련 정보