Como pode forçar um script bash a ser executado em www, e não em execução no sistema de arquivos / *?

0

Eu tenho alguns scripts .sh bash que criam alguns diretórios, fazem o download de alguns arquivos de origem via SVN e assim por diante.

Os scripts funcionam bem, mas me irrita que eles estejam realizando a ação em filesystem/* , não em wwww . Se eles criarem um diretório como /data , ele será criado como filesystem/data , não www/path/data .

Eu tentei executar os scripts de dentro de subdiretórios, por exemplo

wwww/install/sh

mas toda a ação ainda é executada em filesystem/* . Eu também tentei rodar com ./ , sem sorte.

Eu sempre sou capaz de copiar a estrutura de arquivos gerada de filesystem/ para www , mas eu realmente gostaria de saber como eu posso forçar o bash a executar onde está.

Não há links codificados apontando para o sistema de arquivos, um dos arquivos .sh se parece com isso

#!/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"

Quando ele é executado a partir do terminal, por exemplo, de www/a/test , ele insiste em criar filesystem/data e fazer o download para filesystem/data/mb32 . Eu gostaria que ele baixasse para www/install/data etc. Estou obviamente perdendo algumas bem simples e básicas.

    
por davidkonrad 19.02.2014 / 13:24

1 resposta

1

Está bem no topo: cd / muda para o diretório raiz. Além disso, a barra na linha 4 precisa ser removida.

    
por Donarsson 19.02.2014 / 14:43