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 :-)
