2014-11-17 2 views
0

스크립트에서 파일 경로를 통해 파일 경로를 참조하려고하지만 구문을 인식하지 못합니다.쉘 스크립트에서 변수로 파일 경로 참조하기

#!/bin/bash 
filepath = /tibcouat1_fs/tibco/deployment/egypt/bnk/broker/logs/; 
echo "============BNKBroker==============" 
grep 'EXSTAT|' $filepath/bnkbroker.log 

위의 스크립트를 찾아서 아래 오류가 발생한 곳을 찾았습니다.

bash-3.2$ ./BNKSrvcList.sh 
./BNKSrvcList.sh: line 2: filepath: command not found 
============BNKBroker===== ========= 
grep: can't open /bnkbroker.log 
bash-3.2$ 

답변

2
당신은 등호 (=)의 양쪽에 공간을 가질 수 없습니다

이 시도 사용해보십시오 : =`주위

filepath=/tibcouat1_fs/tibco/deployment/egypt/bnk/broker/logs/ 
+0

줄';'의 끝은 괜찮지 만 필요하지는 않습니다. –

+0

그리고 우리는 일반적으로'filepath =/tibcouat1_fs/tibco/deployment/egypt/bnk/broker/logs'와 같은 파일 경로에 마지막 '/'을 사용하지 않으므로 나중에 '/'를 사용할 수 있습니다. 폴더 경로 이름'$ filepath'와 로그 파일 이름'bnkbroker.log' :'$ filepath/bnkbroker.log' –

+1

bash 쉘 구문에서 변수의 할당은 공간을 가로 질러 갈 수 없습니다 :'A = 5 echo A $ '는 변수 A를 5로 지정하고 변수 A를 출력하는 것을 의미합니다. 따라서'Name = John Smith'는 문자열 John을 변수 Name에 할당하지만 Smith가 실행됩니다 (일반적으로 알 수없는 명령 임). 올바른 사용법은 작은 따옴표 나 큰 따옴표로 인용하는 것입니다 :'Name = "John Smith"'마찬가지로 A = 5는 빈 문자열을 A에 할당 한 다음 '5'라는 명령을 실행하는 것을 의미합니다. 일반적으로 알 수없는 명령입니다. –

1

filepath='/tibcouat1_fs/tibco/deployment/egypt/bnk/broker/logs/'; 
+2

이 잘못 공간을 '는 BASH 변수 할당에 허용되지 않습니다. – anubhava

+0

죄송합니다 @anubhava 지금 업데이트되었으므로 그 부분을 놓쳤습니다. – Skynet

관련 문제