数字のキューブが得られない

数字のキューブが得られない
while [ "$c" = y -o "$c" = Y -o -z $c ]
do
  echo enter a number;
  read n;
    if [ $n -ge 0 -a $n -le 50 ];then
      echo "cube= `expr $n * $n * $n`";
    fi;
  echo y to continue  or any to exit;
  read c;
done

ベストアンサー1

シェルスクリプトに問題があります。まず、$c一時的に引用する必要があります(すべて - 最後の引用を見逃しました)。それ以外の場合、$ cが空の場合(たとえば、プログラムの先頭で)、-zテストには空の文字列だけが渡され、エラー(たとえば「予想引数」など)が発生します。

*第二に、コマンドを終了する必要がありますexpr。それ以外の場合は、glob(ファイル名の一致)を実行しようとしますcat *。最も簡単な方法はそれから逃げることです\*。結果のエラーは*拡張子の正確な内容(つまり、現在のディレクトリにどのファイルがあるか)によって異なりますが、混乱する可能性があります!

少なくともスクリプトを実行する必要があります。

PS:改善できる方法はさまざまです。一度見てください。住宅検査いくつかの(自動)提案。

おすすめ記事