はじめに
この実験では、Shell プログラミングにおける基本的な算術演算(計算)の方法を学びます。フルーツバスケットの合計金額を計算するシンプルなスクリプトを作成しながら、Bash における変数の使い方や算術式の扱い方をマスターしましょう。この実験は初心者向けに設計されているため、各ステップを詳しく解説していきます。
この実験では、Shell プログラミングにおける基本的な算術演算(計算)の方法を学びます。フルーツバスケットの合計金額を計算するシンプルなスクリプトを作成しながら、Bash における変数の使い方や算術式の扱い方をマスターしましょう。この実験は初心者向けに設計されているため、各ステップを詳しく解説していきます。
まずは、新しい Bash スクリプトファイルを作成することから始めましょう。
WebIDE のターミナルを開きます。labex@ubuntu:~/project$ のようなコマンドプロンプトが表示されているはずです。
スクリプトは project ディレクトリ内に作成します。デフォルトでこのディレクトリにいるはずですが、念のため cd コマンドで移動しておきましょう。
cd ~/project
このコマンドは、現在のディレクトリを /home/labex/project に変更します。
次に、fruit_basket.sh という名前の新しいファイルを作成します。空のファイルを作成するには touch コマンドを使用します。
touch fruit_basket.sh
WebIDE エディタで fruit_basket.sh ファイルを開きます。WebIDE の左側にあるファイルエクスプローラーでファイル名をクリックすると開けます。
すべての Bash スクリプトは「シバン(shebang)」行から始める必要があります。この行は、スクリプトを実行するためにどのインタープリタを使用するかをシステムに伝えます。ファイルの先頭に以下の行を追加してください。
#!/bin/bash
この行は、このスクリプトを Bash インタープリタで実行することを指定しています。
スクリプトファイルが用意できたので、次に各フルーツとバスケットの価格を保存するための変数を定義しましょう。
fruit_basket.sh ファイルに以下の行を追加してください。
#!/bin/bash
## 価格の定義
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
内容を詳しく見ていきましょう。
= 記号の前後にスペースを入れてはいけません。COST_PINEAPPLE=50 はパイナップル 1 個が 50 セントであることを意味します。価格が定義できたので、パイナップル 1 個、バナナ 2 本、スイカ 3 個が入ったフルーツバスケットの合計金額を計算してみましょう。
fruit_basket.sh ファイルに以下の行を追加します。
#!/bin/bash
## 価格の定義
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## 合計金額の計算
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
この新しい行を詳しく見てみましょう。
$(( )) は、Bash における算術演算の構文です。この二重括弧の中にあるものはすべて算術式として扱われます。$ を付ける必要はありません。COST_PINEAPPLE: パイナップル 1 個の価格(COST_BANANA * 2): バナナ 2 本の価格(COST_WATERMELON * 3): スイカ 3 個の価格COST_BASKET: バスケット自体の価格TOTAL 変数に格納されます。注意:Bash は整数演算のみをサポートしています。ドルとセントのような浮動小数点(小数)を含む計算が必要な場合は、bc のような外部ツールを使用する必要があります。
計算結果を確認するために、合計金額を出力する必要があります。fruit_basket.sh ファイルに以下の行を追加してください。
#!/bin/bash
## 価格の定義
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## 合計金額の計算
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
## 合計金額の表示
echo "Total Cost is $TOTAL cents"
この新しい行の解説です。
echo は、ターミナルにテキストを表示するためのコマンドです。$TOTAL の部分は例外です。$ を付けると、Bash はそれを変数の値に置き換えます。これを「変数展開(variable expansion)」と呼びます。TOTAL が 128 であれば、出力は "Total Cost is 128 cents" となります。スクリプトが完成したので、実行できるように権限を設定してから動かしてみましょう。
ターミナルで、chmod コマンドを使ってスクリプトを実行可能にします。
chmod +x ~/project/fruit_basket.sh
このコマンドはファイルのモードを変更し、ユーザーに実行(x)権限を追加します。
それでは、スクリプトを実行しましょう。
~/project/fruit_basket.sh
このコマンドは Bash にスクリプトを実行するよう指示します。~/project/ の部分はスクリプトへのパス(場所)を指定しています。
以下のような出力が表示されるはずです。
Total Cost is 128 cents
この出力は、フルーツバスケット(パイナップル 1 個、バナナ 2 本、スイカ 3 個、およびバスケット)の合計金額が 128 セントであることを示しています。
この実験では、Shell プログラミングにおける基本的な演算子を使った算術演算の方法を学びました。個別の価格を変数として定義し、算術式を使って合計を算出する Bash スクリプトを作成しました。また、スクリプトを実行可能にする方法や、コマンドラインから実行する方法についても習得しました。
覚えておくべき重要なポイント:
#!/bin/bash)で始める。= の前後にスペースを入れずに代入する。$(( )) の中で行う。echo コマンドは結果を出力するために使用する。chmod +x で実行権限を付与する必要がある。これらのスキルは、より複雑なシェルスクリプトを作成するための基礎となり、スクリプト内で計算が必要なあらゆる場面で応用できます。