Me parece que lhe faltam os fundamentos da linguagem...

Recomendo as leituras do site do Aurélio, do Thobias e do Julio Neves:

http://www.aurelio.net
http://thobias.org
http://www.julioneves.com

Ah, e para não eu paracer chato, quando você chama "$variável", está 
lidando unicamente com o conteúdo da mesma (no bash! :-)). Já quando diz 
"variável", está lidando com, digamos, seu "endereço de memória". Se 
quer, por exemplo, definir uma variável com o comando read, você não 
precisa saber seu conteúdo, mas seu "endereço". Logo, read $var é uma 
construção falha - embora não dê erro de execução, pois será um read sem 
argumento algum), enquanto que read var é uma construção válida, pois 
sei onde (endereço) jogar a informação.

Quanto à sua atribuição, no bash uma atribuição da saída de um comando é 
assim:
var=$(comando executado)

Quando você faz ...

var=(comando executado)

... está definindo um array com os elementos comando no índice zero e 
executado no índice um (embora o comando que você executou falhará) por 
sintaxe inválida.

Acredito que você tenha feito confusão entre o bash e outras linguagens, 
como o php, perl e csh :-)

Boa sorte na leitura :-)

Responder a