Você está digitando a variável diretamente e o shell interpreta o que você digitou como um comando e pesquisa as entradas na variável $ PATH para um comando com o mesmo nome. Como você não tem entradas em seu $ PATH com o nome BASH e BASH_VERSINFO, você recebeu a mensagem de erro "comando não encontrado". pwd
e hostname
são, por outro lado, comandos válidos, como você descobriu.
Em vez disso, você deve emitir um comando para imprimir variáveis (geralmente echo
ou printf
, ambos internos do shell) e fornecer a variável que deseja inspecionar como um argumento do comando. Observe que os nomes dos comandos geralmente são compostos inteiramente de letras minúsculas, enquanto as variáveis de ambiente do shell geralmente são compostas inteiramente de letras maiúsculas.
Para exibir os valores das variáveis que você mencionou, tente algo como o seguinte:
$ echo "$BASH"
/bin/bash
$ for i in {0..4}; do printf "%d\t%s\n" "$i" "${BASH_VERSINFO[$i]}"; done
0 4
1 4
2 12
3 1
4 release
Para imprimir variáveis de matriz, use a sintaxe "$ {ARR_NAME [$ index]}". Os índices de bash são baseados em 0. Em geral, você deve encapsular variáveis (incluindo matrizes) entre aspas duplas para evitar comportamento indesejado (a omissão de aspas é equivalente ao operador split-glob, conforme explicado em