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