2016-07-27 25 views
0

私は "colors.sh"をフォーマットしています。これは私のデスクトップのノートパッドというファイルにあります。使用してそれを実行しよう:私の.shファイルが端末で動作しないのはなぜですか?

./colors.sh 

をし、それはエラーメッセージの^Mがすべてを伝え

[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

oh。いい視点ね!正直言ってそれを考えることさえなかった – Shell

答えて

2

....これを言う:あなたのテキストファイルには、「DOS」テキスト形式として保存されています、それはCR + LF行末である。 U * xインタプリタは、LF(^J)文字だけを行終端文字として使用するため、余分なCR(^M)文字が/bin/shシェル宣言に追加され、無効になります。

ファイルをUNIX/Linuxの行末(LF)で保存するか、使用する前にdos-to-unixコンバータで変換してください。

関連する問題