Как заставить bash-скрипт выполняться в www, а не в файловой системе / *?

У меня есть несколько .sh скриптов bash, которые создают несколько каталогов, загружают некоторые исходные файлы через 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 и т. Д. Я, очевидно, упускаю некоторые очень простые и основные.

0
задан 19 February 2014 в 17:56

1 ответ

Справа вверху: cd / переходит в корневой каталог. Кроме того, косая черта в строке 4 должна быть удалена.

0
ответ дан 19 February 2014 в 17:56

Другие вопросы по тегам:

Похожие вопросы: