Comportement différent de $ () et “

% PATH="MYPATH" % VAR="PATH" % echo $(eval echo \$$VAR) MYPATH % echo `eval echo \$$VAR` 5707VAR ^^ This is the process number. 

Je pensais que ces deux étaient exactement les mêmes, mais il y a évidemment des différences, comme un comportement d'évasion. Quelles sont les différences?

Je vais reproduire le text du manuel de reference BASH parce que je ne l'exprimerai pas mieux:

Bash exécute l'extension en exécutant la command et en remplaçant la substitution par la command par la sortie standard de la command, les nouvelles lignes supprimées étant supprimées. Les nouvelles lignes incorporées ne sont pas supprimées, mais elles peuvent être supprimées lors du fractionnement de mots. La substitution de la command $ (file cat) peut être remplacée par l'équivalent mais plus rapide $ (<file).

Lorsque la substitution de style ancienne est utilisée, la barre oblique inverse conserve son sens littéral, sauf si elle est suivie de '$', '' 'ou' \ '. Le premier backquote non précédé d'une barre oblique inverse termine la substitution de command. Lorsque vous utilisez le formulaire $ (command), tous les caractères entre parenthèses constituent la command; aucun n'est traité spécialement.

Source: manuel de reference Bash, substitution de command