14
#!/bin/bash
cd ~/workspace/trunk;
svn up;

./build.shフォーム コマンド ラインを実行すると、次のように表示されます。

: command not found

そして、何も起こりません。どうすればこれを解決できますか?

4

5 に答える 5

42

実行権限の追加を解決しました:

sudo chmod +x file.sh

于 2013-09-15T11:21:05.193 に答える
14

\r\nファイルに印刷できない制御文字があるか、 (CRLF) 行末 (dos/windows モード)があると思います。

次のコマンドで確認してみてください。

$ hexdump -C build.sh 
00000000  23 21 2f 62 69 6e 2f 62  61 73 68 0a 63 64 20 7e  |#!/bin/bash.cd ~|
00000010  2f 77 6f 72 6b 73 70 61  63 65 2f 74 72 75 6e 6b  |/workspace/trunk|
00000020  3b 0a 73 76 6e 20 75 70  3b 0a                    |;.svn up;.|
0000002a

$ file build.sh 
build.sh: Bourne-Again shell script, ASCII text executable

$ unix2dos build.sh 
unix2dos: converting file build.sh to DOS format ...

$ hexdump -C build.sh 
00000000  23 21 2f 62 69 6e 2f 62  61 73 68 0d 0a 63 64 20  |#!/bin/bash..cd |
00000010  7e 2f 77 6f 72 6b 73 70  61 63 65 2f 74 72 75 6e  |~/workspace/trun|
00000020  6b 3b 0d 0a 73 76 6e 20  75 70 3b 0d 0a           |k;..svn up;..|
0000002d

$ file build.sh 
build.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators
于 2012-06-01T15:25:42.203 に答える
7

;スクリプト行の末尾から削除します。

これは私の bash では発生しないため、正確に何が問題なのかはわかりませんが、私の推測では次のようになります。

;コマンドの区切りです。最後のコマンドは で終わるため;、bash はおそらく後で別のコマンドを期待しています。ただし、スクリプトは終了するため、実行できない空のコマンドを読み取ります。

于 2012-06-01T15:00:40.600 に答える