>

왜 쉘 스크립트를 개발하기가 어려운가? NodeJS에서 간단하게 할 수 있습니다 :

require('./script')

그리고 항상 현재 스크립트와 관련된 스크립트가 필요합니다. 하지만 쉘/bash에서 시도하면 :

./script.sh

cwd 와 관련된 스크립트를 찾습니다  (와이즈 와이즈) ). 점은 pwd 를 의미하는 것 같습니다  (와이즈 와이즈) )이 아닌 현재 스크립트가있는 디렉토리가 아닙니다.

cwd

현재 실행중인 스크립트가있는 디렉토리를 기준으로 스크립트를 실행하는 방법?

내가 시도했다

pwd

하지만 오류가 발생했습니다 :

line 8: ./script.sh: No such file or directory

그러면 시도

/bin/bash script.sh

이 오류가 발생했습니다

/bin/bash: script.sh: No such file or directory

다음 솔루션 만 제대로 작동했지만 읽을 수 없다는 문제가 있습니다.

script.sh

line 8: script.sh: command not found
  • 답변 # 1

    스크립트 디렉토리를 얻는 또 다른 변형 :

    DIR="$(cd "$(dirname "$0")" && pwd)"
    
    

    다음으로 스크립트를 호출 할 수 있습니다

    $DIR/script.sh
    
    

  • 답변 # 2

    안타깝게도 그 방법입니다.

    또 다른 방법 (내가 선호하는)은 다음과 같이 스크립트 시작 부분에서 현재 디렉토리로 들어가는 것입니다.

    cd $(dirname $0)
    
    

관련 자료

  • 이전 데비안 큐에서 이메일을 제거
  • 다음 shell script - 한 파일에서 다른 파일로 변수 전송