2014-12-14 4 views
0

환경과 오류 수 : Centos6 64 비트쉘 스크립트는 절대 경로로 실행되지만 상대 경로

( mysql.sh 이름) 쉘 스크립트가있다

; 이 파일에 위치하고 다음과 같이 /home/user1/sbin/mysql.sh

매개 변수 '다시 시작'이 스크립트를 실행하는 동안, 그 결과는 다음과 같습니다

1) PWD :/홈/사용자 1/sbin에/

#./mysql.sh restart       Fail  Prompt:No such file or directory 
#/home/user1/sbin/mysql.sh restart   ok 
#../sbin/mysql.sh restart      ok 

2) PWD :/홈/사용자 1

#./sbin/mysql.sh restart      Fail    Prompt:No such file or directory 

3) PWD :/

#/home/user1/sbin/mysql.sh restart    ok 

경로가 있으면 mysql.sh는 'start'및 'stop'매개 변수를 사용하여 성공적으로 실행할 수 있습니다.

그래서이 스크립트 (mysql.sh)의 버그일지도 모릅니다. 이 스크립트는 공식 mysql.sh (mysql.server 스크립트)과 유사하지만 약간 수정되었습니다.

그래서 무엇이 잘못 되었나요? "./mysql.sh 쉬"

를 사용하는

+0

'../sbin/mysql.sh restart'가 작동합니까? 오타 또는 어쩌면 코드의 버그와 같은 소리 일 것입니다. – MeetTitan

+0

'/ home/user1/sbin restart'가 작동한다는 내용의 줄은'/ home/user1/sbin/mysql.sh'가 아니라'/ home/user1/sbin'이라는 스크립트를 의미합니다. 디렉토리를 실행할 수 없습니다 (디렉토리의'x' 권한은 디렉토리에있는 파일을 사용할 권한을줍니다). 실제로 그 질문에 오타가 있다고 가정합니다 (마지막에서'mysql.sh'를 놓쳤습니다). –

+0

'# '표시는 스크립트를 사용자'root'로 실행하고 있음을 나타 냅니까? '/ home/user1/sbin/mysql.sh' 경로 ('ls -l/home/home/user1/home/user1/sbin/home/user1/sbin/mysql을 검사한다. sh')? 특이한 권한이 관련되어 있습니까? 동일한'ls -l' 명령이이를 나타낼 것입니까? –

답변

0

봅니다 스크립트의 첫 번째 행에 오두막을해야합니다.

+0

'sh./mysql.sh'를 사용하면, shebang 행은 중요하지 않습니다. mysql.sh 또는./mysql.sh와 같이 스크립트를 직접 실행하는 경우에만 shebang 행이 중요합니다. –

+0

죄송 합니다만 도움이되지 않습니다. – Eacon

관련 문제