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 파일에서 편집하세요.

편집: 마지막 게시물 편집에서 ~/.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. 이는 귀하의 경우인 것 같습니다. 따라서 ++파일 이름과 줄 번호 대신 표시됩니다.)

관련 정보