はじめに
このチャレンジでは、シェルスクリプトで基本的な四則演算計算機を作成します。これにより、シェルスクリプト内で複数の関数を定義し、活用するための基礎を学ぶことができます。
計算機関数の作成
タスク
~/projectディレクトリに移動します。そこには一部が未完成のcalculator.shというスクリプトファイルが用意されています。calculator.shファイルを開き、add(加算)、subtract(減算)、multiply(乗算)、divide(除算)の 4 つの関数を完成させてください。
要件
~/projectディレクトリにあるcalculator.shは、基本的な構造が既に作成されています。- 以下の関数を実装してください:
add: 2 つの引数を受け取り、その和を返します。subtract: 2 つの引数を受け取り、1 つ目の値から 2 つ目の値を引いた結果を返します。multiply: 2 つの引数を受け取り、その積を返します。divide: 2 つの引数を受け取り、1 つ目の値を 2 つ目の値で割った結果を返します。ゼロ除算(0 での割り算)を適切に処理することを忘れないでください。
- 各関数は 2 つのパラメータを受け取り、結果を
echoで出力する必要があります。 - スクリプトのメイン部分(関数を呼び出す処理)は既に記述されています。
- 重要な注意点:
case文内では、シェルの解釈(ワイルドカード展開など)を防ぐために、すべての演算記号(+,-,*,/)が引用符で囲まれています。特に*記号を引用符なしで使用すると、ワイルドカードとして動作し、あらゆる入力にマッチしてしまうため、予期しない動作の原因となります。
実行例
完成したスクリプトの動作イメージは以下の通りです:
$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): +
Result: 15
$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): -
Result: 5
$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): *
Result: 50
$ ./calculator.sh
Enter first number: 10
Enter second number: 5
Enter operation (+, -, *, /): /
Result: 2
$ ./calculator.sh
Enter first number: 10
Enter second number: 0
Enter operation (+, -, *, /): /
Error: Division by zero is not allowed.
自動テストの失敗を防ぐため、スクリプト内の文字列(メッセージなど)は上記の例と一致させる必要があります。
まとめ
このチャレンジでは、シェルスクリプトを用いて四則演算計算機を作成しました。引数を受け取り、計算を実行して結果を返す複数の関数を定義する練習を行いました。この演習を通じて、シェルスクリプトにおける関数の宣言と使用方法、そして簡単な計算やエラーハンドリングの実装といった実用的な手法への理解を深めることができました。



