即使路径正确,shell脚本cd也会失败

时间:2011-07-13 14:48:24

标签: linux bash shell centos cd

我需要做一个脚本来提取指定位置的tar。

我做了一些简单的事情:

cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar

如果我手动执行命令,一切正常。如果我将它们保存在.sh中然后使用#bash script.sh,我会收到以下错误“:不是目录cd:/ var / www / html”。任何想法为什么?

Ty你的时间。

注意:我在虚拟机(CentOS 5.5)上尝试了脚本版本并且脚本工作正常,问题发生在我想要使用它的真机上(我使用了相同的操作系统磁盘映像,配置与虚拟机...这对我来说真的很奇怪。)

补充:我也尝试调用像mysqld start这样的东西...这也说不存在dir(如果我手工运行它仍然有用。)。

3 个答案:

答案 0 :(得分:4)

我解决了这个问题 - 非常有趣)。

我在运行在带有centos os的windows上的虚拟机上创建了脚本,windows中的输入是“\ r \ n”,而在linux中是“\ n”。

该脚本在vm上工作,因为输入的代码是正确的,而在第二台计算机上,使用本机linux则不正确。我在linux上创建了完全相同的脚本,一切都恢复正常;)。

注意...... mkdir部分有效,因为我使用了另一个在linux上编写的简化脚本。

答案 1 :(得分:2)

在相关的说明中,我发现“〜”字符在bash中似乎不起作用,因此如果您正在使用它,请尝试将其替换为完整路径。

答案 2 :(得分:1)

看起来你的cp可能正在将test.jar复制到www目录下的文件 html。在尝试cp之前,请确保html存在并且是一个目录。

mkdir -p /var/www/html
cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar