如何强制 bash 脚本在 www 中执行,而不是在 filesystem/* 中执行?

如何强制 bash 脚本在 www 中执行,而不是在 filesystem/* 中执行?

我有一些.shbash 脚本,可以创建一些目录、通过 SVN 下载一些源文件等等。

这些脚本运行良好,但让我恼火的是它们在 中执行操作 filesystem/*,而不是 在 中wwww。如果它们创建一个像 这样的目录/data,它将被创建为filesystem/data,而不是www/path/data

我曾尝试在子目录中运行脚本,例如

wwww/install/sh

但所有操作仍在 中执行filesystem/*。我也尝试过用 运行./,但没有成功。

我总是能够将生成的文件结构从复制filesystem/www,但我真的很想知道如何强制 bash 在它所在的位置执行。

没有指向文件系统的硬编码链接,其中一个 .sh 文件如下所示

#!/bin/sh
cd /
mkdir data
cd /data
svn checkout <path to svn> mb32
cd mb32 
mv www/htaccess.txt www/.htaccess
INSTALL_PATH=`pwd`
INSTALL_PATH=$INSTALL_PATH"/"
to_replace="#php_value auto_prepend_file"
replace_by="php_value auto_prepend_file"
eval sed -i \'s/$to_replace/$replace_by/\' www/.htaccess
to_replace="/my/root/path/"
replace_by=$INSTALL_PATH
args="-i 's|$to_replace|$replace_by|' www/.htaccess"
eval sed $args
cp www/.htaccess ImageServer/
eval sed -i 's/app.server.php/image.server.php/g' ImageServer/.htaccess
echo "Changing permissions to configuration and log..."
sudo chmod -R 775 configuration
sudo chmod -R 775 log
echo "Done"

当它从终端运行时,例如从www/a/test,它坚持创建filesystem/data并下载到filesystem/data/mb32。我希望它下载到www/install/data等。我显然错过了一些非常简单和基本的。

答案1

它就在最上面: cd /更改到根目录。另外,第 4 行的斜线需要删除。

相关内容