Você está procurando por set -x
:
set -x arm 'ARCH=arm CROSS_COMPILE=arm-eabi-'
Consulte a seção de tutoriais sobre variáveis de ambiente para saber mais.
Eu quero usar o seguinte em fish
shell:
$ export arm='ARCH=arm CROSS_COMPILE=arm-eabi-'
$ make $arm
Isso funciona bem em bash/zsh
, mas não em fish
shell.
Mas se eu executar o seguinte em fish
shell:
$env tmp=arm make
isso funciona bem.
Alguém por favor pode me ajudar com isso?
Você está procurando por set -x
:
set -x arm 'ARCH=arm CROSS_COMPILE=arm-eabi-'
Consulte a seção de tutoriais sobre variáveis de ambiente para saber mais.
Em sh
/ bash
:
export arm='ARCH=arm CROSS_COMPILE=arm-eabi-'
make $arm
Realmente não faz sentido. Variáveis de ambiente são significadas como variáveis passadas para make
(portanto, uma referência a $ (arm) no Makefile por exemplo se expande para seu conteúdo). Variáveis de ambiente são escalares, elas podem conter apenas um valor de cadeia. Acima, você está contando com o operador <+> split <> do shell que divide a variável em palavras passadas para make
(como argumentos).
Mas $arm
é expandido pelo shell, portanto, você não precisa exportar arm
para o ambiente de make
porque make
não usa essa variável $arm
.
Além disso, em um shell que os suporte, faria mais sentido usar arrays. Em bash
/ zsh
/ ksh
:
arm=(ARCH=arm CROSS_COMPILE=arm-eabi-)
make "${arm[@]}"
com fish
:
set arm ARCH=arm CROSS_COMPILE=arm-eabi-
make $arm
Com rc
/ es
/ zsh
:
arm=(ARCH=arm CROSS_COMPILE=arm-eabi-)
make $arm
Tags fish