RHEL 7.2のシェルコマンドプロンプトでwhileループを試しましたが、csh
次のエラーが発生しました。
$ while true
while: Expression Syntax.
bash
シェルでも同様です。
ベストアンサー1
while
ループイン構文は、csh
Bourneのようなシェルの構文とは異なります。それ:
while (arithmetic-expression)
body
end
csh
end
インタラクティブな場合は、何らかの理由で認識された行にそれ自体が表示されるはずです。
~のため算術表現コマンドが成功したかどうかをテストするには{ cmd }
(必要なスペース)が必要です。{ cmd }
算術式は、コマンドが成功した場合(0終了状態で終了)1と評価され、そうでなければ0(コマンドが0以外の終了状態で終了した場合)と評価されます。
だから:
while ({ true })
body
end
しかし、これはやや愚かなことです。特にこれが無限ループの場合は、次をtrue
使用csh
することをお勧めします。
while (1)
body
end
対照的に、POSIXシェルの構文は次のとおりです。
while cmd; do
body
done
算術式を条件付きで評価するには、それを評価するコマンド(たとえば、算術拡張と組み合わせたコマンドまたはコマンドexpr
)を実行する必要があります。ksh
let
((...))
test
[
$((...))