2016-08-28 5 views
0

CentOS 6이 설치된 VM이 있고 bashrc에서 일부 스크립트를로드 중입니다. 모든 것이 잘되었지만 동일한 VM의 이전 백업에 동일한 코드와 스크립트를 복사하여 붙여 넣기를 원했지만 오류가 발생했습니다 : "예기치 않은 파일 끝". 또한 같은 스크립트를 다른 사람과 공유하고 싶을 때도 같은 오류가있었습니다 (동일한 VM을 가졌습니다). bashrc의 이상한 동작 : 연결, 동일한 코드 실행/실패

그래서 나는 조금을 디버깅하기 시작하고 한 행은 그가이 (가 배열 분석 하였다 좋아하지 않았다는 것을 발견 그가 정확히이 중 하나 (그렇지 않은 좋아하지 않았다

또한
COUNTER=1  
while [[ ! -z ${SCRIPT[$COUNTER]} ]]; do 

을 논리는하지만 않습니다 "하면서"작업)과 같은 : 이제

for ((i = 0; i < ${#SCRIPT[@]}; i++)); do 

:

for i in ${Script[@]}; do 

그래서, 나는 그것을 대체 나는 동일한 코드 조각으로 오류 이름을 얻으려고 시도했지만 오류가 더 이상 발생하지 않았습니다. 코드 :

또한 나는 모든에서 이상한입니다이 동작이

을 :

BASH_SCRIPTS_LOCATION='/mnt/hgfs/Shared-workspace/scripts/' 
SCRIPT[0]='aliases.sh' 
SCRIPT[1]='scripts_config.sh' 
SCRIPT[2]='credentials.sh' 
SCRIPT[3]='other_functions.sh' 
SCRIPT[4]='ssh_functions.sh' 
SCRIPT[5]='release_functions.sh' 
SCRIPT[6]='test_functions.sh' 
for ((i = 0; i < ${#SCRIPT[@]}; i++)); do 
    loadedScript=${BASH_SCRIPTS_LOCATION}${SCRIPT[$i]} 
    echo -e "$loadedScript" 
done 

터미널 출력을합니다 (처음 문자열/변수의 구걸부터 문자를 대체하고있다 "연결할"보인다

aliases.shShared-workspace/scripts/ 
scripts_config.shworkspace/scripts/ 
credentials.shed-workspace/scripts/ 
other_functions.shorkspace/scripts/ 
ssh_functions.sh-workspace/scripts/ 
release_functions.shkspace/scripts/ 
test_functions.shworkspace/scripts/ 

는 내가 매우 부적절한 무언가를 사용하고 생각한다. 그러나 나는 내가 찾고되어야 하는지를 또는 무엇 확실하지 않다.

모든 추천이나 조언을 환영합니다.

감사합니다!

+0

마지막 부분은 윈도우 라인 엔딩처럼 보입니다. – choroba

답변

0

여기에는 표시되지 않지만 쉘 정의 행에는 캐리지 리턴 문자가 있습니다. 그들을 편집하십시오 (예를 들어, 메모장 ++ 또는 tr -d "\015" <yourscript.sh> newscript.sh)

파일의 모든 텍스트를 볼 수있는 파일로 스크립트를 재지 정할 수 있습니다.

캐리지 리턴 문자 (asc 13, \r)는 개행을 건너 뛰지 않고 커서를 재설정합니다. 이후에 쓰여지는 모든 텍스트는 현재 줄의 텍스트를 덮어 씁니다. Windows는이를 사용하여 줄 바꿈 문자를 보완합니다. Windows 텍스트 모드는 다음과 같습니다.

+0

Ah, sry, "test"는 테스트 였고 나는 그것을 잘못 복사했습니다. 이제 올바른 코드입니다 – softwareRat

+0

답변에서 코드를 삭제했습니다. –

+0

대단히 고마워, 방금 gedit에서 "바꾸기"를 사용하여 모든 것이 잘 작동하고있다. 아주 이상한 행동 ... 나는 언제든지 그것을 기억할 것이다. – softwareRat