2015-10-02 2 views
0

Недавно я наткнулся на функцию, чтобы положить в ~/.bashrc

gpip(){ 
    PIP_REQUIRE_VIRTUALENV="" pip "[email protected]" 
} 

(Source)

Я не понимаю, использование [email protected]. Я предполагаю, что он отправляет pip аргумент, переданный gpip из терминала.

Правильно ли я понимаю? Как называются эти конструкции программирования?

+2

_ "' $ @ 'Расширяется до позиционных параметров, начиная с 1. Когда расширение происходит в двойных кавычках, каждый параметр расширяется до отдельное слово. "_ :: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html – hrbrmstr

+0

или http://tldp.org/LDP/abs/html/internalvariables.html – hek2mgl

+0

Код в вашем вопросе обертывание 'pip' с' PIP_REQUIRE_VIRTUALENV' устанавливается в пустую строку в течение всего цикла 'pip'. – tripleee

ответ

1

"[email protected]" «Интерполировать все аргументы, указанные отдельно», например "$1" "$2" "$3"....

Итак ...

gpip "foo bar" "baz" 

позвонит

PIP_REQUIRE_VIRTUALENV="" pip "foo bar" "baz" 

man bash, а затем искать "Особые параметры". (Это не зависит от Mac, это bash POSIX.)

+4

* [...] это функция 'bash'. * Более того; '$ @' [указан POSIX] (http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_05_02). – Jubobs

Смежные вопросы