こんにちは。私は3つのパラメータを返し、食事価格、税金、チップ、総決済額などのプログラムを開発しています。コードの使用に問題があります。

こんにちは。私は3つのパラメータを返し、食事価格、税金、チップ、総決済額などのプログラムを開発しています。コードの使用に問題があります。

これはシェルチェックと更新されたコードです。どんな助けでも本当に感謝します!具体的には、コードは実行されないか実行されますが、エラーメッセージが返され、食事の価格で数字を入力することはできません。コードを実行しようとしたときに表示されるエラーメッセージは次のとおりです。 stinput:コマンドが見つかりません、続いてコマンドが見つかりません、2回繰り返されます。更新:以下のユーザーが提案したようにコードを試したので、更新されたコードとエラーメッセージは次のようになります。

    #!/bin/bash
NumberofInputs="$1"
total=$(( $1 * $2))
total=$(("$total" / 100))
total=$(("$total" +  $3 + "$NumberofInputs"))
echo "The price of the meal is: $1"
echo "The tax for the meal is: $2"
echo "The tip for the meal is: $3"
echo "The total amount paid is: $total"
exit 1

更新:user000001コードの最初の部分を削除したときに次のエラーが発生しました。 bash: * : 構文エラー: 予想オペランド (エラー表示 "*") bash: "" / 100: 構文エラー: 予想オペランド (エラー表示) for """ / 100") bash: "" ++ : 構文エラー:期待されるオペランド(エラータグ """ ++ ")がuser000001コードの最初の部分を保持すると、次のエラーメッセージが表示されます。 echo すみません。間違った情報です。パラメータを3つだけ入力してください。 : 命令が見つかりません

更新:引用符を削除し、すべての変数を一緒に空白にする答えを見つけました。みんなの助けをありがとう!

答え1

Bashで算術を実行するには二重括弧が必要であり、$1 $2位置引数にも当てはまります。

私の考えでは、あなたが欲しいと思います。

total=$(($1 * $2))

完全なスクリプトは次のとおりです。

$ cat script.sh 
#!/bin/bash
if [[ $# != 3 ]]
then
   echo "Usage: $0 price tax tip" 1>&2
   exit 1
fi

tax=$(( $1 * $2 / 100 ))
total=$(( tax + $3 + $1 ))

echo "The price of the meal is:  $1"
echo "The tax for the meal is: $tax"
echo "The tip for the meal is: $3"
echo "The total amount paid is: $total"

$ ./script.sh 10 20 4
The price of the meal is:  10
The tax for the meal is: 2
The tip for the meal is: 4
The total amount paid is: 16

関連情報