Condicionalmente variável de exportação da linha de comando

0

Se eu correr

export COMMAND=nonexistentcommand && which $COMMAND >/dev/null || \
(echo "download filewithcommand.sh" && export COMMAND=./filewithcommand.sh)

echo "command: $COMMAND"

Eu obtenho

download filewithcommand.sh
command: nonexistentcommand

Mas acho que deveria ser

download filewithcommand.sh
command: ./filewithcommand.

O que há de errado com essa frase?

    
por manelio 28.02.2016 / 20:01

1 resposta

3

COMMAND está definido como nonexistentcommand e essa é a saída obtida. Normal.

Você define COMMAND para algum outro valor, mas isso está em um subshell (colocado entre parênteses) para que não afete o ambiente do shell pai. Você quis usar { chaves } (que não bifurca um subshell) em vez de ( parênteses ) ?

    
por 28.02.2016 / 20:07