Arch USB iso, zsh에서 다음 내용이 포함된 스크립트를 실행합니다 ./test
.
#!/bin/bash
PATH=$(dirname $0)
ls $PATH
반품
ls: 명령을 찾을 수 없습니다
이 문제를 해결하는 방법을 아시나요?
편집: ls는 단독으로 작동하지만 $PATH를 추가하면 작동하지 않습니다.
편집: $PATH가 환경 변수이고 그 값을 대체한다는 의견을 통해 방금 깨달았습니다.
답변1
PATH 변수는 특수 변수입니다. 특수 변수가 많이 있습니다(모두 대문자이므로 피하기 쉽습니다). PATH
검색 명령에 사용되는 디렉토리 목록을 저장합니다.
재미와 학습을 위해(동일한 것이지만) echo $PATH
스크립트 외부에 입력하여 포함된 내용을 확인하세요.
문제를 해결하려면 PATH를 중단하지 마십시오. 다른 변수 이름(모두 대문자가 아님)을 사용하십시오.
답변2
시도해 보니 주석에서 @123이 언급한 경로에 없는 것 /bin/ls
같습니다 .ls
에 추가 합니다 /bin
.가입PATH
~/.bashrc
export $PATH=$PATH:/bin
답변3
노력하다:
#!/bin/bash
PATH="$PATH:$(dirname $0)"
ls $PATH
이렇게 하면 $(dirname $0)
PATH 변수를 바꾸는 대신 추가할 수 있습니다. 또는 환경변수를 편집하지 않고 $(dirname $0)
개별적으로 사용하고 싶다면 다른 변수명을 사용하세요.