2014-02-07 7 views
7

Ich habe mehrere Versionen von PHP installiert, und für meine normale Entwicklung benutze ich immer PHP 5.5.x installiert über Homebrew.Setzen von Exporten in Fish Shell

Im Fisch

which php & php --version 
=> /usr/local/bin/php 
=> PHP 5.5.8 (cli) (built: Jan 16 2014 15:58:25) 

Der Weg richtig ist Shell.

Mein Problem ist, dass wenn ich mit Drupal entwickeln muss, verwende ich MAMP als einen gebündelten Lampenstapel, und MAMP hat seine eigene PHP-Version enthalten. Mein Problem ist, dass ich bei Verwendung von Drush mit Drupal den ausführbaren Pfad von PHP nicht so einstellen kann, wie ich es normalerweise tun würde. Ich möchte nur, dass drush die gebündelte PHP-Version/ausführbare Datei verwendet.

In bash Ich kann dies tun:

# Set Drush root to MAMP PHP 
export DRUSH_PHP=/Applications/MAMP/bin/php/php5.5.3/bin/php 

Aber das wird nicht funktionieren in Fisch-Schale, habe ich versucht, mit diesem (ohne Erfolg):

Fisch Config Ort: ~/.config/fish/config.fish

set -x DRUSH_PHP=/Applications/MAMP/bin/php/php5.5.3/bin/php 

Wenn ich die fishshell mit drush status i laufen diese immer erhalten:

Drupal version   : 7.26 
Site URI    : http://default 
Database driver  : mysql 
Database username  : root 
Database name   : dev-db 
Default theme   : garland 
Administration theme : garland 
PHP executable   : /usr/local/bin/php 
PHP configuration  : /usr/local/etc/php/5.5/php.ini 
PHP OS     : Darwin 
Drush version   : 6.2.0 
Drush configuration : 
Drush alias files  : 
Drupal root   : /Applications/MAMP/htdocs/Sandbox/dev 
Site path    : sites/default 
File directory path : sites/default/files 

Und wenn ich den gleichen Befehl in der Bourne-Shell laufen bekomme ich die richtigen Einstellungen:

Drupal version     : 7.26           
    Site URI      : http://default        
    Database driver     : mysql          
    Database username    : root           
    Database name     : dev-db          
    Database      : Connected         
    Drupal bootstrap    : Successful         
    Drupal user      : Anonymous         
    Default theme     : bartik          
    Administration theme   : seven          
    PHP executable     : /Applications/MAMP/bin/php/php5.5.3/bin/php 
    PHP configuration    : /Applications/MAMP/bin/php/php5.5.3/conf/php.ini          
    PHP OS       : Darwin          
    Drush version     : 6.2.0          
    Drush configuration    :            
    Drush alias files    :            
    Drupal root      : /Applications/MAMP/htdocs/Sandbox/dev  
    Site path      : sites/default        
    File directory path    : sites/default/files       
    Temporary file directory path : /Applications/MAMP/tmp/php 

So, wie der Export Pfad zum DRUSH_PHP in Fisch setzen?

Antwort

10

Derp.

Die Syntax war ein wenig anders, aber ich habe es herausgefunden. Wer dieses Problem hat, können Sie einen Export als diesen Satz:

set -x DRUSH_PHP /Applications/MAMP/bin/php/php5.5.3/bin/php

und drush bekommt den korrekten PHP exec Pfad.

Sehen Sie die set documentation, um zu verstehen, wie set in Fish im Gegensatz zu anderen Shells funktioniert. Grundsätzlich gilt:

set variable value 
12

Falls Sie den export Befehl in der Fisch-Shell emulieren, erstellen Sie einfach die folgende Datei:

~/.config/fish/functions/export.fish

function export 
    if [ $argv ] 
     set var (echo $argv | cut -f1 -d=) 
     set val (echo $argv | cut -f2 -d=) 
     set -g -x $var $val 
    else 
     echo 'export var=value' 
    end 
end 

Starten Sie ein neues Terminal und führen Sie export von Ihrer Fischschale wie erwartet:

export foo=123 
echo $foo 
Verwandte Themen