2016-05-17 3 views

Antwort

8

Alle Fischvariablen sind Arrays. Also in der Theorie würde dies so einfach sein wie

set -x RUBIES $RUBIES /opt/jruby-1.7.0 "$HOME/src/rubinius" 

Leider Fisch wird nicht automatisch das Array in einem String Wertedoppelpunkt getrennt konvertieren, wenn es die var exportiert. Zur Zeit macht Fisch das nur für PATH und MANPATH.

Sie können es wie folgt tun:

set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius" 

Aber das setzt voraus, RUBIES bereits gesetzt worden ist; Andernfalls erhalten Sie eine Zeichenfolge mit einem führenden Doppelpunkt, der für jede Software, die die Variable verwendet, eine besondere Bedeutung haben kann oder auch nicht. Der Umgang mit dieser ist einfach:

if set -q RUBIES[1] 
    set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius" 
else 
    set -x RUBIES "/opt/jruby-1.7.0:$HOME/src/rubinius" 
end 

Too, wenn Sie mit Fisch 2,3 (bald freigegeben werden) oder ein Fisch aus git Kopf gebaut können Sie den neuen „string“ builtin verwenden, um die Zeichenfolge zu aufgeteilt und kommen auf Doppelpunkte:

set rubies (string split ':' $RUBIES) 
set rubies $rubies /opt/jruby-1.7.0 "$HOME/src/rubinius" 
set -x RUBIES (string join ':' $rubies) 
+1

Es ist wirklich hässlich, dass Sie 5 Zeilen verwenden müssen, um etwas zu tun, was Sie in einer Zeile der Bash tun könnten, nicht wahr? – user3467349