-
a=2 echo $aResultado: gera uma linha em branco
Razão: O Bash fornece um subconjunto de suas variáveis (o ambiente ) para cada programa que você chama com ele (você pode especificar com o
exportembutido). Prefixando um comando com, e.a=2diz ao bash para adicionar$a(com valor2) ao ambiente, mas- apenas para esse programa específico e
- não para o conjunto de variáveis usadas pelo
bashem si.
Então, se
echofosse um programa (é na verdade, um arquivo ), ele receberia$ajunto com as outras variáveis de ambiente ... masechonão se importa sobre variáveis de ambiente - ele apenas retorna os argumentos que você fornece. Como$anão está definido como uma variável embash, seu comando é equivalente a umecho, que emite um caractere de nova linha, fornecendo uma linha em branco.
-
set a=2 echo $aResultado: nenhuma saída
Razão: Isso não está fazendo o que você pensa - na verdade, o comando
echonão é chamado. Quandoseté chamado sem opções, define o parâmetros posicionais para os argumentos que você fornece, em ordem. Você pode ver isso com alguns comandos extras:$ set a=2 echo $a $ echo a=2 $ echo echo... e
echofornecem uma linha em branco, porque você tentou definirpara$a, o que não existe.
-
a=2; echo $aResultado: output
2(finalmente!)Razão: Esta é a maneira correta de obter o que você deseja: você define a variável
$apara2e, em seguida, chamaechowith$acomo argumento.
-
set a=2; echo $aResultado:
- Se
$ajá estiver definido como2: saída2 - Se
$anão estiver definido: exibirá uma linha em branco
Razão: Espero que você possa resolver isso por si mesmo, dadas as explicações acima.
- Se