Разделение команды на несколько строк в fish-shell

Я пытаюсь разделить свой список дополнительных путей на несколько строк в моей конфигурации рыбы:

# Path additions
for i in \
        ~/Library/Haskell/ghc-7.0.2/lib/gtk2hs-buildtools-0.12.0/bin \
        ~/Library/Haskell/bin \
        /Applications/MacVim.app/Contents/MacOS \
        /opt/local/bin \
        /usr/local/bin \
        /usr/local/git/bin \
        /Users/lyndon/.gem/ruby/1.8/bin
    if not contains $i $PATH
        set -x PATH $i $PATH
    end
end

Однако это не работает, если все элементы не находятся в одной строке.

Это возможно? Кажется, я не могу найти никакой информации о том, как это сделать.

В качестве альтернативы, есть ли способ использовать литералы списка/массива для этого?


person Lyndon Maydwell    schedule 14.04.2011    source источник


Ответы (1)


Я использую fish 2.0.0 на OSX 10.8.5, и ваш пример работает так, как я и ожидал (для путей, которые существуют на моей машине).

Запуск этого кода

# Path additions
for i in \
    ~/bin \
    ~/.config/fish/functions
    if not contains $i $PATH
       echo $i 
    end
end

где ~/bin установлен в PATH, а ~/.config/fish/functions — нет, выводит: ~/bin

Я добавил приведенное выше в конфигурацию моей рыбы, а затем запустил ее следующим образом: . ~/.config/рыба/config.fish

Вот еще немного информации о многострочном редактировании: http://fishshell.com/docs/2.0/index.html#multiline

В fish нет литералов массива. Подробнее о массивах fish можно прочитать в документации. http://fishshell.com/docs/2.0/index.html#variables-arrays

person Luke    schedule 30.09.2013