Bash shell脚本中的Cd不工作

Bash shell脚本中的Cd不工作,bash,shell,cd,Bash,Shell,Cd,首先,我对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" 当我运行这段代码时,它说

首先,我对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”

我不知道为什么会出现关于cd的错误,但看起来您可以在整个过程中使用绝对路径。这将解决脚本正常工作的更大问题。

如果该目录确实存在,那么您必须使用其他用户(cron、webserver等)执行该脚本


检查该目录的权限。

是的,我已经尝试将所有权限设置为绝对权限,如果cd不给我这个错误,那么无论哪种方式都应该有效。因为您有
#/bin/sh
,运行脚本的正常方式是
/build.sh
<代码>sh build.sh忽略。但是试试bash build.sh;我不指望它能解决这个问题,但我发现它会给出一个更具体的错误消息。当运行bash build.sh时,我得到以下信息:没有这样的文件或目录www/html/fbplugin/chromeba根据您接受的答案,问题是您在终端键入的脚本和命令是由不同的用户执行的。作为将来的参考,这是重要的信息,在你的问题中提到它会节省一些时间。我真的很抱歉,就像我说的,我对shell脚本非常陌生,所以我不知道这些信息有那么大的价值。我下次一定会这样做。完全重复:这起作用了,我没有使用chmod设置正确的权限