釈迦に説法のようで大恐縮ですが、
shで、というかtest(1)の論理積は -a ですので、
if [ -f foo -a -n bar ]; then ... fi ですね。
cshと違ってshの場合 if やら while やらの後に書くのはあくまでも「コマンド文」なので、一般コマンド・alias・関数・それら+リダイレクション何でも書けます。Lispのifと同じ感覚で使えます。
このあたり270ページで強調したつもりです。
お邪魔致しました。
HNS Board-0.1.1 Copyright (c) by HyperNikkiSystem Project 2002