Você ainda não fez uma pergunta específica, mas aqui estão alguns comentários que o ajudarão a entender o que está acontecendo:
ad 1
Se você acabou de entrar
$PATH
no seu terminal o shell expands
da variável chamada $PATH
e depois attempts
para executar seu contents
o que, obviamente, não faz muito sentido com relação a $PATH
. Tente executar
$ foo=ls
$ $foo
e você entenderá o que acontece. Note que, na maioria dos casos, você não quer armazenar um comando em uma variável, você vai querer ler BashFAQ / 050 aka I'm tentando colocar um comando em uma variável, mas os casos complexos sempre falham! para aprender um pouco sobre os casos específicos e por que isso geralmente é uma má ideia, a menos que você saiba exatamente o que está fazendo.
ad 2
Usando echo $var
, você está imprimindo o conteúdo da variável $var
na tela. Note que word splitting
pode ocorrer e normalmente você vai querer citar suas variáveis para evitar isso:
$ echo "$var"
ad 3
Isso não funciona porque cd
é um comando (OK, um shell embutido normalmente) e ..
é seu parâmetro e os dois precisam ser separados por espaços em branco para que o analisador do shell possa selecioná-los como tokens separados:
$ cd ..
Observe que você pode configurar um alias para tornar cd..
work:
$ alias cd..='cd ..'
mas eu aconselharia contra isso e aprenderia como usar corretamente um shell Unix em vez de fazê-lo imitar DOS
.