Diferença entre $ {} e $ () no Bash [duplicado]

Esta pergunta já tem uma resposta aqui:

Backticks vs chaves em Bash 2 respostas

Eu tenho duas perguntas e poderia usar alguma ajuda para entendê-las.

Qual é a diferença entre${} e$()? Eu entendi aquilo() significa executar o comando em shell separado e colocar$ significa passar o valor para a variável. Alguém pode me ajudar a entender isso? Por favor corrija-me se eu estiver errado.

Se pudermos usarfor ((i=0;i<10;i++)); do echo $i; done e funciona bem, então por que não posso usá-lo comowhile ((i=0;i<10;i++)); do echo $i; done? Qual é a diferença no ciclo de execução para ambos?

questionAnswers(3)

yourAnswerToTheQuestion