![이름 앞에 ./ 없이 스크립트를 실행하세요.](https://linux55.com/image/38071/%EC%9D%B4%EB%A6%84%20%EC%95%9E%EC%97%90%20.%2F%20%EC%97%86%EC%9D%B4%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EC%84%B8%EC%9A%94..png)
저는 디렉터리를 변경하고 다른 많은 명령을 실행하는 매우 복잡한 스크립트를 실행하고 있습니다. 이 모든 명령은 "scriptname"을 사용하여 실행되며 터미널에서 기본 스크립트를 실행하면 정상적으로 실행됩니다. 그러나 때로는 서버에 ssh를 연결하고 거기에서 기본 스크립트를 실행해야 하는데 각 명령 앞에 ./가 없기 때문에 실패합니다.
모든 스크립트와 실행 파일을 살펴보고 명령에 ./를 추가하고 싶지 않은데 이 문제를 해결할 수 있는 다른 방법이 있습니까?
답변1
./
PATH 환경 변수를 추가하는 것을 포함하여 이 동작을 변경하는 여러 가지 방법이 있지만 이렇게 하면 환경에 심각한 보안 위험이 발생합니다. 스크립트를 작성하는 방식이 실제로 잘못되었습니다. 올바른 해결책은 모든 스크립트를 확인하고 로컬 스크립트가 호출되는 방식을 수정하는 것입니다. 이는 추가 문제를 일으키지 않고 보안 문제를 일으키지 않는 유일한 올바른 수정 사항입니다. 난 그게 당신의 일이 아니라는 걸 알아요구함듣고 있지만 총알을 물고 올바르게 행동하십시오.
답변2
스크립트가 /opt/housekeeping/bin 아래에 있는 경우 다음을 추가하는 것이 좋습니다.
export PATH=$PATH:/opt/housekeeping/bin
.bash_profile 또는 .profile 또는 사용하는 로그인 스크립트에 해당 스크립트에 대한 755 권한을 설정했는지 확인하세요.
답변3
스크립트에 대한 별칭을 만들 수 있습니다.
alias scriptfile="./scriptfile"