シェル初心者です。
↓の本を参考に勉強をしていたのですが、caseの評価で気になるところが出てきたので
質問させてください。コードも↓の本から抜粋しています。
技術評論社 - [改訂新版]シェルスクリプト基本リファレンス
 

case `uname -s` in
 Linux)
 echo 'OSはLinuxです'
 ;;
 FreeBSD)
 echo 'OSはFreeBSDです'
 ;; 
 Solaris)
 echo 'OSはSolarisです'
 ;; 
 *) 
 echo 'その他のOSです'
 ;;
esac 

という処理なのですが、

uname -s

というコマンドはパターンが実行されるたびに実行される認識は正しいでしょうか?
重い処理をcase文の文字列に入れるとパフォーマンスが劣化してしまうのではないかと懸念しております。

また、比較はif文同様testコマンドで実行される認識はあってますでしょうか?

ご存知の方がいらっしゃいましたらお手数をおかけしますがご教授頂けると幸いです。
よろしくお願いします。