bash sh - 找不到命令

时间:2012-06-01 14:58:39

标签: linux bash

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

当我运行./build.sh表单命令行时,它会显示:

: command not found

没有任何反应。我该如何解决这个问题?

5 个答案:

答案 0 :(得分:12)

我解决了添加执行权限的问题:

sudo chmod +x file.sh

答案 1 :(得分:9)

我的猜测是你在文件中有不可打印的控制字符,或者它有\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

答案 2 :(得分:5)

从脚本行的末尾删除;

这不会发生在我的bash中,所以我不确定究竟是什么问题,但我猜是这样的:

;是命令的分隔符。由于您的上一个命令以;结尾,因此您的bash可能需要另一个命令。但是,由于脚本完成,它会读取一个无法执行的空命令。

答案 3 :(得分:4)

我已解决此命令中的错误。

sudo chmod +x build.sh

答案 4 :(得分:0)

除上述之外,以上所有内容均不为我工作

sudo ./build.sh