2012-03-03 11 views
0

場合、私はエラーを取得する:[コマンドは、実際にtestコマンドと同じものですUnixのプログラミング何が悪いの文

if [ $num -lt 20 ]; then 

、そして:あなたが[の後にスペースを必要とする./greater[4]: [: argument expected

#!/bin/ksh 
echo "please enter a nuber " 
read $num 
if [$num -ls 20 ]; then 
echo "your nuber is greater than 20 " 
else 
echo "your number is less then 20 " 

fi 
+0

また、あなたのロジックは逆方向である: '' [$ num個が20を-lt]場合( '-ls'が間違っている)、その後 –

答えて

0
read $num 

read numに変更し、期待どおりに動作します。あなたはまた、以下に引用行に[の後にスペースを追加する必要があります上記の変更に伴い


if [$num -ls 20 ]; then 

、ユーザが入力した場合そうでない場合、コマンドは以下のコード・スニペットのようになります。 、そしてあなたのシェルはコマンド[123が見つからないか、それと似ていると文句を言うでしょう。

if [123 -ls 20 ]; then 
+0

素晴らしいそれはあなたに感謝します – toky

0

コマンドとして、コマンド名と最初の引数の間にスペースが必要です。上記「明らかに」正しくない名前が$numに格納されている変数への入力を読み取ることを

+0

を超えていない私はまだ同じエラーを持っている「あなたの数が20未満です」 – toky

関連する問題