我需要做一个脚本来在指定位置提取 tar。
我做了一些简单的事情,比如:
cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar
如果我手动执行命令,一切正常。如果我将它们保存在 .sh 中然后使用#bash script.sh,我会收到以下错误“:不是目录 cd:/var/www/html”。知道为什么吗?
请稍等。
注意:我在虚拟机(CentOS 5.5)上尝试了脚本版本并且脚本运行良好,问题出现在我想要使用它的真实机器上(我使用相同的操作系统磁盘镜像,相同的配置虚拟机...这对我来说真的很奇怪)。
补充:我也尝试调用 service mysqld start 之类的东西...这也没有说明目录不存在(如果我手动运行它仍然有效。)。
最佳答案
我解决了这个问题 - 这很有趣)。
我是在一个虚拟机上创建的脚本,该虚拟机运行在带有 centos 操作系统的 windows 上,在 windows 中输入是“\r\n”,而在 linux 中输入是“\n”。
该脚本在 vm 上运行,因为输入代码是正确的,而在第二台计算机上,使用 native linux 它是不正确的。我在 Linux 上创建了完全相同的脚本,一切都恢复正常 2;)。
注意...mkdir 部分起作用是因为我使用了另一个在 Linux 上编写的简化脚本。
关于linux - 即使路径正确,shell 脚本 cd 也会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680810/