2017-11-30 9 views
-3

私は華氏の値と摂氏相当のテーブルを作る他の誰かからシェルスクリプトを使用しようとしています。BashシェルスクリプトFahrenheit to Celsiusエラー

行10:[1:コマンドは

を見つけていないが、私はwhile文の-lt一部はので、私は方法がわからないされているものを理解していない私が言うのライン10上のエラーを取得しておきますそれを変更する。スクリプトはユーザーからの3つの入力を受け取り、上記のエラーを吐き出します。どんな助けでも大歓迎です。ここ

はバッシュだけでも中間結果との比較で、整数を扱うことができる

#!/bin/bash 

echo "Enter starting Fahrenheit temperature:" 

read sf 

echo "Enter end Fahrenheit temperature:" 

red ef 

echo "Enter the step increment:" 

read step 

echo "Fahrenheit Celsius" 

while [ $sf -lt ef ] 

do 

    c=`expr ($sf-32)*5/9 

    echo "$sf $c" 

    sf=`expr $sf+$step 

done 
+1

この質問はここでは適切ではありません。 *これは他の場所でこのコードが見つかりましたが、動作しません。誰かが私のためにそれを修正できますか?*質問。これはコード作成サービスではなく、私たちは個人用のデバッガーではありません。 bashスクリプトに関するチュートリアルを見つけ、問題を自分で解決するために努力してください。その努力を惜しまない場合は、あなたのために仕事をする人を雇う。がんばろう。 –

+1

そこにあなたのスクリプトを貼り付けてください:http://www.shellcheck.net/ – Cyrus

+0

あなたが報告するエラーは一般的なものですが、あなたのスクリプトの中に何もそれを含んでいないようです。 10行目は空に見えますが、9行目にタイプミスがあります( 'red' pro' read')。たぶん、[Stack Overflow 'bash'タグ情報](/ tags/bash/info)も見ていますが、私はhttp://shellcheck.net/を試し、整数算術以上の言語を使っています。 – tripleee

答えて

3

スクリプトのコードです。したがって、計算された値と出力値は正しくありません。

#!/bin/bash 

declare -i c sf # set integer attribute 

read -p "Enter starting Fahrenheit temperature:" sf 
read -p "Enter end Fahrenheit temperature:" ef 
read -p "Enter the step increment:" step 

echo "Fahrenheit Celsius" 

while [ $sf -lt $ef ]; do 
    c=($sf-32)*5/9 
    echo "$sf $c" 
    sf=$sf+$step 
done 

例:

echo "10 
100 
10" | ./script.sh 
Fahrenheit Celsius 
10 -12 
20 -6 
30 -1 
40 4 
50 10 
60 15 
70 21 
80 26 
90 32 

私は、このタスクのためのPerlやPythonを使用することをお勧めします。

+0

Nit pick: 'sf'、' ef'、 'step'を二重引用符で囲む方が良いですか? – codeforester

関連する問題