()$ استفاده میشه برای نگارش یک Command Substitution.
در Command Substitution، قبل از اجرای دستور اصلی (در مثال شما readlink) دستوری که درون ()$ قرار گرفته اجرا و خروجیش به عنوان یک پارامتر در مقابل دستور readlink قرار میگیره. و نهایتا دستور readlink با اون پارامتر اجرا میشه.
یعنی چیزی که نهایتا اجرا خواهد شد:
readlink -f /usr/bin/java
هست و readlink آدرس
/usr/bin/java
که یک لینک هست رو دنبال میکنه و فایل اصلی که بهش اشاره میکنه رو بر میگردونه.
برای مطالعه بیشتر:
http://www.tldp.org/LDP/abs/html/commandsub.html
و این تنها اتفاقی نیست که قبل از اجرای دستور رخ میده تعدادی expansion دیگر هم وجود داره:
brace expansion
tilde expansion
parameter and variable expansion
command substitution
arithmetic expansion
word splitting
filename expansion
برای مثال Process Substitution:
ls <(echo)
/dev/fd/63