2012-01-30 2 views
1

Я надеялся, что кто-то может дать некоторое представление о проблеме, которую я заметил при моем последнем развертывании. У меня есть страница erb с некоторым javascript. Не было никаких проблем, пока я не попытался умножить числа. По какой-то причине, после того, как я раскрываю к серверу, все звездочки заменяются, что похоже на вывод командыПочему звездочка заменяется на все каталоги под/после развертывания?

~$ ls/

Таким образом, чтобы выяснить, почему этот код

<script type="text/javascript"> 
    a = b * 2; 
</script> 

стать

<script type="text/javascript"> 
    a = b bin boot dev etc lib sbin usr var 2; 
</script> 

при визуализации после развертывания? Сейчас это просто разочаровывает. Заранее благодарим за любые идеи или ответы.

EDIT Я проверил свой исходный код, и звездочки не изменены. Они меняются только тогда, когда я пытаюсь попасть на страницу. Проблема была не в капистрано.

+1

Как вы развертываете этот файл? Скопировав его из своего исходного хранилища? Используя 'echo'? – tadman

+0

копирование моего исходного репо с capistrano. [Capistrano on github] (https://github.com/jadb/capcake/wiki/Introduction-to-Capistrano) – Justin

+0

Очень волнует, что что-то подобное закончится тем, что оно будет выполнено в оболочке или каким-то образом интерполировано. Обычно метод 'git' просто копирует файлы по дословным. – tadman

ответ

1

Это связано с расширением оболочки. Если текущий каталог /:

echo * 
bin boot dev etc home lib lib64 logs_backup media mnt opt proc root run sbin srv sys tmp usr var 

Попробуйте

"a = b * 2" 

, если вы хотите вычислить, используйте

a=$(echo "$b*2" | bc) 

(Существует, вероятно, лучший способ, чем выше.)
+0

Извините, я думаю, вы неправильно поняли. Исходный код меняется при развертывании на сервере. Я не ввожу никаких * в терминал. – Justin

+1

Видимо, ваш исходный код выполняется в терминале. – Reactormonk

+0

Как это возможно? Я исправил эту проблему, переместив функцию javascript на глобальную страницу js. – Justin