削除された内容 追加された内容
m 仮リンクの除去:expr
m 仮リンクの除去:リターンコード
51行目:
}}
 
shには[[式 (プログラミング)|式]]の文法が存在しない。角括弧で囲まれた条件式は、外部の{{仮リンク|test (Unix)|en|test (Unix)|label=test}}というプログラムで評価する必要がある。つまり、shのifコマンドは[[子プロセス]]を起動して引数を別のコマンドとして実行させる。その子プロセスが終了したときの{{仮リンク|[[リターンコード|en|return code}}]]がゼロならthen節を探し(then節はifとは別の文だが、セミコロンをはさんで一行で書かれることが多い)、入れ子になったブロックを実行する。リターンコードがゼロ以外ならelse節を実行する。testプログラムを "<code>test</code>" と "<code>[</code>" の両方に[[ハードリンク]]することで、角括弧表記の利点が生まれ、testの機能があたかもshの一部であるかのような錯覚を与える。shで制御ブロックの終端にキーワードを逆に綴ったものを置くのは、[[ALGOL|ALGOL 68]] のスタイルを踏襲したものである<ref>[http://groups.google.com/group/comp.lang.misc/msg/d58db4799c33e093?hl=en&dmode=source ''Re: Late Bloomers Revisited''] USENET post to comp.lang.misc by Piercarlo "Peter" Grandi, Dept of CS, UCW Aberystwyth, UK, Dec 17, 1989.</ref>。
 
対照的にcshは自前で式を評価でき、高速である。[[可読性]]もよいと言われている。演算子や構文の多くはC言語のものをそのまま使っている。キーワードを逆に綴ることもなく、全体としてよりC言語に近いスタイルである。
176行目:
: コマンドは、次のような手段で1行に複数個連結することができる。
::<code>;</code> は、1つめのコマンドを実行し、次に2つめのコマンドを実行することを意味する。
::<code>&&</code> は、1つめのコマンドを実行し、その{{仮リンク|[[リターンコード|en|return code}}]]が0(成功)の場合、2つめのコマンドを実行する。
::<code>||</code> は、1つめのコマンドを実行し、リターンコードが0以外(失敗)の場合に2つめのコマンドを実行する。
; [[パイプ (コンピュータ)|パイプ]]