2016-07-27 2 views
0

그래서 "colors.sh"형식으로 메모장이라는 파일에 바탕 화면에 있습니다. 사용하여 실행하려고 : ....내 .sh 파일이 터미널에서 실행되지 않는 이유는 무엇입니까?

[email protected]:~$ cd Desktop/notepad/ 
    [email protected]:~/Desktop/notepad$ ll 
    total 144 
    drwx------ 2 shell shell 4096 Apr 9 2015 ./ 
    drwxr-xr-x 11 shell shell 4096 Jul 27 19:42 ../ 
    -rw-r--r-- 1 shell shell 35551 Oct 7 2014 colors background.PNG 
    -rwxr-xr-x 1 shell shell 2534 Apr 9 2015 colors.bat~* 
    -rw-r--r-- 1 shell shell 31047 Oct 7 2014 colors.PNG 
    -rwxr-xr-x 1 shell shell 2475 Apr 9 2015 colors.sh* 
    -rwxr-xr-x 1 shell shell 2475 Apr 9 2015 colors.sh~* 
    -rw-r--r-- 1 shell shell 1142 Aug 22 2013 Command Prompt.lnk 
    -rw-r--r-- 1 shell shell 84 Nov 21 2014 desktop.ini 
    -rwxr-xr-x 1 shell shell 92 Nov 21 2014 hello.bat* 
    -rw-r--r-- 1 shell shell 3755 Oct 16 2014 netstat.PNG 
    -rw-r--r-- 1 shell shell 1158 Aug 22 2013 Notepad.lnk 
    -rw-r--r-- 1 shell shell 970 Nov 18 2014 NSIS.lnk 
    -rwxr-xr-x 1 shell shell 504 Nov 21 2014 rainbow.bat* 
    -rwxr-xr-x 1 shell shell 31 Nov 21 2014 random.bat* 
    -rwxr-xr-x 1 shell shell 561 Oct 7 2014 spanish.bat* 
    -rw-r--r-- 1 shell shell 687 Oct 6 2014 text to speech.vbs 
    -rwxr-xr-x 1 shell shell 50 Oct 12 2014 timer.bat* 
    -rw-r--r-- 1 shell shell 2060 Feb 13 2013 Turbo C++.lnk 
    -rw-r--r-- 1 shell shell 182 Sep 23 2014 welcome dif.vbs 
    -rw-r--r-- 1 shell shell 2472 Sep 22 2014 welcome - Shortcut.lnk 
    [email protected]:~/Desktop/notepad$ chmod +x colors.sh 
    [email protected]:~/Desktop/notepad$ ./colors.sh 
    bash: ./colors.sh: /bin/sh^M: bad interpreter: No such file or directory 
+0

문제는 * in *'colors.sh'입니까? –

+1

다른 텍스트 편집기를 사용하십시오. 파일의 첫 줄에 줄 끝 문자 ('#!/bin/sh') 앞에 줄 바꿈 문자 ('^ M')가 있습니다. 파일의 모든 행에 동일한 문제가있을 수 있습니다. –

+0

오. 좋은 지적! 정직하게 생각하지도 않았다. – Shell

답변

2

오류 메시지에서 ^M

./colors.sh 

을 한 후이 말한다 모든 이야기 : 텍스트 파일을 'DOS'텍스트 형식으로 저장되었습니다 CR + LF 라인 끝과 함께 사용됩니다. U * x 인터프리터는 LF (^J) 문자를 줄 종결 자로 사용하므로 불필요한 CR (^M) 문자가 /bin/sh 쉘 선언에 추가되어 유효하지 않게됩니다.

파일을 유닉스/리눅스 라인 엔딩 (LF)으로 저장하거나 사용하기 전에 dos-to-unix 변환기로 변환하십시오.