이름 앞에 ./ 없이 스크립트 실행

이름 앞에 ./ 없이 스크립트 실행

나는 디렉토리를 변경하고 다른 많은 명령을 실행하는 매우 복잡한 스크립트를 실행하고 있습니다. 이 모든 명령은 터미널에서 기본 스크립트를 실행할 때 제대로 작동하는 'scriptname'을 사용하여 실행됩니다. 그러나 때로는 서버에 ssh를 연결하고 거기에서 기본 스크립트를 실행해야 하는데, 각 명령 앞에 ./가 없기 때문에 실패합니다.

모든 스크립트와 실행 파일을 살펴보고 명령에 ./를 추가하고 싶지 않은데 이 문제를 해결할 수 있는 다른 방법이 있습니까?

답변1

PATH 환경 변수에 추가하는 것을 포함하여 이 동작을 변경하는 방법이 있지만 ./이로 인해 환경에 심각한 보안 위험이 발생합니다. 스크립트가 작성된 방식은 정말 잘못되었으며 올바른 해결책은 모든 스크립트를 검토하고 로컬 스크립트가 호출되는 방식을 수정하는 것입니다. 이는 향후 추가 문제를 일으키지 않고 보안 문제를 일으키지 않는 유일한 적절한 수정 사항입니다. 난 그게 당신이 아닌 걸 알아요구함듣고 싶지만 총알을 물고 올바르게하십시오.

답변2

스크립트가 /opt/housekeeping/bin 아래에 있으면 추가하는 것이 좋습니다.

export PATH=$PATH:/opt/housekeeping/bin  

.bash_profile 또는 .profile 또는 사용하는 로그인 스크립트에 755 권한이 설정되어 있는지 확인하십시오.

답변3

스크립트에 대한 별칭을 만들 수 있습니다.

alias scriptfile="./scriptfile"

관련 정보