我面临两个问题,其原因可能是相同的,这就是我在一个问题中发布它们的原因。
这是我的小shell脚本:
#!/bin/bash
wget "https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-i686.tar.bz2"
然后我说./script
。
我得到bash: ././script: /bin/bash^M: bad interpreter: No such file or directory
然后我对自己说,好吧,试试bash script
代替./script
。
似乎有效,但网址是:
--2013-12-31 12:24:55-- https://phantomjs.googlecode.com/files/phantomjs-1.9.2-
linux-i686.tar.bz2%0D
Resolving phantomjs.googlecode.com... 173.194.69.82, 2a00:1450:4008:c01::52
Connecting to phantomjs.googlecode.com|173.194.69.82|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-12-31 12:25:01 ERROR 404: Not Found.
您是否认识到我的网址在文件名后的第2行附加了2%0D
?
当我在shell中运行命令时,而不是脚本,它完全正常。
这两个问题是否具有相同的根?为什么附加2%0D
?我已经找了一个空的空间但没找到它。
答案 0 :(得分:4)
您可能使用编辑器创建DOS行结尾(\ r \ n)来编辑脚本。使用其他编辑器或使用dos2unix
答案 1 :(得分:1)
您应该将您的EOL转换更改为Unix。 如果您使用的是Windows,则可以使用Notepad++