2012-08-13 4 views
0

bash에서 스크립트를 작성하고 있습니다. 내가 스크립트 등을 호출하면 나는 다음과 같은 오류-exec 및 Bash 스크립트 찾기

.: ticktick.sh: file not found 

을 얻을

#!/bin/bash 
. ticktick.sh 

: 는 나는이 같은 다른 스크립트를 호출 내 스크립트의 상단에

find *.zip -type f -exec ./myscript.sh {} \; 

로 호출 이

./myscript.sh somefile.zip 

그것이 작동합니다 ticktick.sh 스크립트를 내 경로의 다른 디렉토리에두면 파손되므로 옵션이 아닙니다. 찾기와 함께 호출 된 스크립트의 특별한 종류의 컨텍스트가 있습니까? 나는 BASH 스크립팅을 처음 접했을뿐입니다. 어떤 도움을 주시면 감사하겠습니다

답변

1

나는 두 가지 문제가 있다고 생각합니다. 현재 디렉토리에있는 모든 압축 파일을 검색하려면

1 :, 당신은 당신이 ./ 그 전에 myscript.sh을 실행 : 다음 명령

find . -type f -name *.zip -exec ... 

2를 작성해야합니다. 따라서 myscript.sh는 현재 작업 디렉토리에 있어야합니다. 스크립트가/home/jd /에 있고/home /에서 실행하면 myscript.sh가 발견되지 않습니다.

install_path=$(dirname $(readlink -f $0)) 

그래서 완전한 find 명령은 다음과 같습니다 :

find . -type f -name *.zip -exec $install_path/myscript.sh {} \; 

myscript.sh 파일 ticktick.sh

과 같은 디렉토리에 있어야 먼저이 파일의 디렉토리를 결정해야