2

我需要编写一个脚本来在指定位置提取 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 的东西......这也失败了,说一个目录不存在(如果我手动运行它仍然有效。)。

4

3 回答 3

5

我解决了这个问题——这很有趣)。

我在使用 centos 操作系统的 Windows 上运行的虚拟机上创建了脚本,Windows 中的输入是“\r\n”,而 linux 中的输入是“\n”。

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

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

于 2011-07-13T15:33:52.187 回答
2

在相关说明中,我发现“~”字符似乎在 bash 中不起作用,所以如果您使用它,请尝试用完整路径替换它。

于 2012-08-22T18:46:05.727 回答
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
于 2011-07-13T14:51:13.827 回答