pobierz pid w powłoce (bash)

Mam problem z Bash i nie wiem dlaczego.
Pod powłoką wpisuję:

echo $    ## print 2433
(echo $)  ## also print 2433
(./getpid) ## print 2602

„getpid” to program C, który pobiera bieżący pid, taki jak:

   int main() {
    printf("%d", (int)getpid());
    return 0;
   }

To, co mnie niepokoi, to:

Myślę, że „(polecenie)” jest procesem podrzędnym (mam rację?) I myślę, że jego pid powinien być inny w przypadku pid nadrzędnego, ale są takie same, dlaczego ...kiedy używam mojego programu do pokazywania pid między nawiasami, pid, który pokazuje, jest inny, czy to prawda?to jest „$” coś jak makro?

Możesz mi pomóc?

questionAnswers(5)

yourAnswerToTheQuestion