" CD"在ubuntu中不工作,即使是root

时间:2014-04-08 18:09:29

标签: shell ubuntu terminal root cd

我有一个在我的Ubuntu 12.04 LTS服务器上运行的shell脚本:

cd /var/www/srv

但是,出于某种原因,当我运行它时,它会说:./start.sh: 1: cd: can't cd to /var/www/srv

目录存在,它以root身份运行,因此不存在权限问题。为了增加特性,当我在终端中运行代码时,它可以工作。

先谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个典型的回车问题,是由在Windows / DOS编辑器中创建shell脚本引起的。

你的问题:

$ cat start.sh
cd /

$ ./start.sh
cd: 1: can't cd to /

您的诊断:

$ cat -v start.sh
cd /^M

$ shellcheck start.sh
In start.sh line 1:
cd /
    ^-- SC1017: Literal carriage return. Run script through tr -d '\r' .

你的修复:

$ tr -d '\r' < start.sh  > fixed.sh
$ chmod +x fixed.sh
$ ./fixed.sh
(no errors)