새 터미널을 열 때마다 오류가 발생합니다.
오류: "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
. 이는 귀하의 경우인 것 같습니다. 따라서 ++
파일 이름 대신 파일 이름과 줄 번호가 표시됩니다.)