我需要做一个脚本来提取指定位置的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(如果我手工运行它仍然有用。)。
答案 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