쉘 스크립트 실행

쉘 스크립트 실행

정확히 동일한 권한을 가진 두 개의 쉘 스크립트 파일 등이 있습니다. 하나는 명령줄에 이름을 지정하여 실행할 수 있지만 다른 하나는 sh 또는 ./를 사용하여 실행해야 합니다. 이유는 무엇입니까?

답변1

두 스크립트가 서로 다른 디렉터리에 있을 가능성이 높습니다. 디렉터리 중 하나는 PATH에 있고 다른 하나는 그렇지 않습니다.

type명령을 사용하여 현재 셸의 $PATH에 파일이 있는지 테스트할 수 있습니다.

$ type start_dropbox.bash
start_dropbox.bash is /home/saml/bin/start_dropbox.bash

이 U&L Q&A를 참조하세요."$PATH에 애플리케이션이 있는지 테스트하는 방법은 무엇입니까?” 보다 포괄적인 보도를 원하시면.

답변2

스크립트 이름만 지정하고 작동한다면 /usr/bin/ /usr/sbin 또는 다른 위치에 넣을 수 있습니다. 그것은 모두 경로 설정에 따라 다릅니다.

이 작업을 수행:

1. echo $PATH

스크립트가 이러한 디렉터리 중 하나에 있으면 절대 경로를 사용하지 않고 실행됩니다.

2. whereis "scripts name"

Whereis 또는 "which"는 그것이 어디에 있는지 알려줍니다. 한 파일에는 실행 권한을 부여했지만 다른 파일에는 실행 권한을 부여하지 않았을 수도 있습니다. 프로그램을 이름 이상의 이름으로 실행하려면 chmod u+x를 수행하십시오.

  1. Python 스크립트인 경우 #!/usr/bin/env python을 추가해야 할 수 있습니다. bash인 경우 #!/usr/bin/env bash 등을 추가해야 할 수 있습니다.

관련 정보