【发布时间】:2012-02-29 23:11:20
【问题描述】:
首先,我对 shell 脚本非常陌生。我正在尝试编写一个脚本,该脚本接受一个参数,然后将文件夹复制到使用该参数命名的不同目录中。这是我拥有的当前代码:
#!/bin/sh
cd /var/www/html/fbplugin/chrome
sudo mkdir temp/$1
sudo cp -rf "/var/www/html/fbplugin/chrome/fbplugin" "/var/www/html/fbplugin/chrome/temp/$1"
当我运行此代码时,它显示无法 cd 到 /var/www/html/fbplugin/chrome。我不确定它为什么这么说,因为我知道该目录存在。我直接复制了这条线,它在终端中工作。如果有人可以帮助我,那就太好了。
如果为了运行脚本很重要,我正在输入“sh build.sh”
【问题讨论】:
-
既然你有
#!/bin/sh,那么正常运行脚本的方式是./build.sh;sh build.sh忽略 shebang。但是试试bash build.sh;我不指望它能解决问题,但我发现它会给出更具体的错误信息。 -
当运行 bash build.sh 我得到以下信息:没有这样的文件或目录www/html/fbplugin/chrome
-
根据您接受的答案,问题是您在终端输入的脚本和命令是由不同的用户执行的。供将来参考,这是关键信息,在您的问题中提及它会节省一些时间。
-
我真的很抱歉,就像我说我对 shell 脚本很陌生,所以我不知道这些信息是如此有价值。下次我一定会这样做。