2015-11-17 4 views
2

проблемаработает команда в Баш скрипт производит ошибку

Im пытается написать Баш скрипт, который оборачивает phpbrew switch так, что я могу переключить модуль апачский одновременно. Все работает, за исключением того, что я не могу правильно запустить phpbrew switch php-7.0.01.

код ($version, подаваемого через вход)

if [ -v version ]; then 
     phpbrew switch php-$version 
fi 

ошибка

Недопустимый аргумент PHP-7.0.1

работает phpbrew switch php-7.0.1 выполняет без ошибок.

Есть ли что-то странное с phpbrew? или я пытаюсь сделать что-то глупое в bash?

полный сценарий

#!/bin/bash 
# wraps phpbrew switch to enable apache switching 

module_path=/usr/lib/apache2/modules 
if [ $1 ]; then 
     echo "switching php to version ${1}..." 
     if [ $1 = "5.6.4" ]; then 
       set=5 
       version=5.6.4 
       so_path=libphp5.6.4.so 
     fi 
     if [ $1 = "5.6.15" ]; then 
       set=5 
       version=5.6.15 
       so_path=libphp5.6.15.so 
     fi 
     if [ $1 = "7.1" ]; then 
       set=7 
       version=7.0.1 
       so_path=libphp7.1.0-dev.so 
     fi 
fi 
echo "version selected = ${version}" 

if [ -v version ]; then 
     phpbrew switch php-$version 

     echo "" > /etc/apache2/mods-available/php7.load 
     echo "" > /etc/apache2/mods-available/php5.load 
     echo "LoadModule php${set}_module $module_path/${so_path}" > /etc/apache2/mods-available/php${set}.load 
     service apache2 restart 
else 
     echo "no version set" 
fi 

вход в терминале

./switchphp.sh 7,1

полную мощность

switching php to version 7.1 
version selected = 7.0.1 
Invalid argument php-7.0.1 

дополнительная информация

$ PATH выход:

/home/matt/.phpbrew/php/php-7.0.1/bin:/home/matt/.phpbrew/ бен:/USR/местные/SBIN:/USR/местные/бен:/USR/SBIN:/USR/бен:/SBIN:/бен:/USR/игры:/USR/местные/игры

+0

Пожалуйста, разместите что-нибудь, что можно воспроизвести, т. Е. Присвойте какое-то значение 'version', пожалуйста (у вас вполне может быть некоторое количество пробелов в' version', которое не может быть сразу распознано в сообщениях об ошибках). – 4ae1e1

+1

Не могли бы вы добавить полный скрипт и пример того, как вы его вызываете, чтобы произвести эту ошибку? – madsen

+0

обновлен. спасибо, что посмотрели. его водили меня орехи – DevDonkey

ответ

3

нормально , поэтому удалось получить ответ на github

все, что мне нужно сделать, был поставлен

source $HOME/.phpbrew/bashrc 
phpbrew switch php-${version} 

перед вызовом команды в файле Баш. Очевидно, wasnt вытащил bashrc из моего домашнего каталога во время сценария.