별도의 bash 작업 스크립트가 있습니다. 이것은 깨졌습니다 :
#!/bin/bash
PATH=/home/name/
mkdir $PATH
cd $PATH && echo "done."
exit 0
오늘 문제가 발생했습니다. 처음으로 CD를 실행하지 않고 디렉토리를 생성했습니다. 두 번째로 "mkdir 명령을 찾을 수 없습니다"라고 말했습니다. 세미콜론을 사용하여 이 명령을 완전히 실행하면 문제가 없습니다. 무슨 일이야?
답변1
PATH
환경 변수입니다. 쉘은 이를 사용하여 실행하려는 명령을 찾습니다. 보다 정확하게는 PATH
환경 변수에는 명령을 입력할 때 지정한 이름의 실행 파일을 찾기 위해 검색되는 콜론으로 구분된 디렉터리 이름 목록이 포함되어 있습니다. (물론, 입력한 명령이 쉘 내장, 별칭 또는 함수가 아닌 경우.)
이를 스크립트에서 설정하면 PATH
환경 변수의 값이 동일한 이름의 쉘 변수로 "마스킹"됩니다.
이것으로부터 도출된 결론은일반 쉘 변수에 모두 대문자 이름을 사용하지 마십시오.
환경 변수가 필요하지 않으므로 변수 이름을 소문자로 사용하세요.
또한보십시오:
답변2
Bash에서 설치된 프로그램을 찾을 위치를 PATH
나타내는 특수 변수입니다 . 바이너리가 bash
없으면 설정 후 출력 해야 합니다 . 이 문제를 해결하려면 다른 변수 이름을 사용하십시오.mkdir
/home/name/
mkdir: command not found
PATH