“CD”在ubuntu中不工作,即使有root [duplicate]

6za6bjd0  于 2023-01-25  发布在  其他
关注(0)|答案(1)|浏览(133)
    • 此问题在此处已有答案**:

Are shell scripts sensitive to encoding and line endings?(14个答案)
19小时前关门了。
我在Ubuntu 12.04 LTS服务器上运行了一个shell脚本,如下所示:

cd /var/www/srv

但是,不知为什么,当我运行它时,它说:./start.sh: 1: cd: can't cd to /var/www/srv
目录存在,并且它是以根用户身份运行的,所以没有特权问题。为了增加特性,当我在终端中运行代码时,它工作正常。

fd3cxomn

fd3cxomn1#

这是一个典型的回车问题,由在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)

相关问题