これはシェルチェックと更新されたコードです。どんな助けでも本当に感謝します!具体的には、コードは実行されないか実行されますが、エラーメッセージが返され、食事の価格で数字を入力することはできません。コードを実行しようとしたときに表示されるエラーメッセージは次のとおりです。 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