シェルにおける算術演算

ShellShellBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、シェルプログラミングにおける基本的な算術演算を行う方法を学びます。果物のバスケットの合計金額を計算するための簡単なスクリプトを作成し、Bashにおける変数と算術式の使用方法を示します。この実験は初心者向けに設計されているため、各ステップを詳細に説明します。

新しいBashスクリプトを作成する

新しいBashスクリプトファイルを作成して始めましょう。

  1. WebIDEで端末を開きます。コマンドプロンプトが表示されるはずで、こんな感じになっているかもしれません:labex@ubuntu:~/project$

  2. スクリプトをprojectディレクトリに作成します。デフォルトでは既にこのディレクトリにいますが、cdコマンドを使って確認しましょう:

    cd ~/project

    このコマンドは現在のディレクトリを/home/labex/projectに変更します。

  3. 次に、fruit_basket.shという名前の新しいファイルを作成します。空のファイルを作成するtouchコマンドを使います:

    touch fruit_basket.sh
  4. WebIDEエディタでfruit_basket.shファイルを開きます。WebIDEの左側のファイルエクスプローラーでファイル名をクリックすることで行えます。

  5. すべてのBashスクリプトは「シャバン」行で始める必要があります。この行はシステムにスクリプトを実行するためのインタプリタを教えます。ファイルの先頭に次の行を追加します:

    #!/bin/bash

    この行はスクリプトをBashインタプリタで実行することを指定します。

果物のコスト用の変数を定義する

スクリプトファイルができたので、さまざまな果物とバスケットのコストを格納するためのいくつかの変数を定義しましょう。

fruit_basket.shファイルに次の行を追加します:

#!/bin/bash

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

これを分解してみましょう:

  • Bashでは、変数を使用する前に宣言する必要はありません。単に変数名に値を割り当てるだけです。
  • 変数名は大文字小文字を区別します。慣例として、定数(変わらない値)には大文字を使うことが多いです。
  • 値を割り当てる際に=記号の周りにはスペースを入れないでください。
  • これらの値はセントでのコストを表しています。たとえば、COST_PINEAPPLE=50はパイナップルのコストが50セントであることを意味します。
  • データ型を指定する必要はありません。Bashはデフォルトでこれらを文字列として扱いますが、算術演算を行う際には数値として扱います。

合計コストを計算する

コストを定義したので、1つのパイナップル、2本のバナナ、3つのスイカが入った果物のバスケットの合計コストを計算しましょう。

fruit_basket.shファイルに次の行を追加します:

#!/bin/bash

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## Calculate total cost
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

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## Calculate total cost
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))

## Display the total cost
echo "Total Cost is $TOTAL cents"

この新しい行を分解してみましょう:

  • echoは端末にテキストを表示するコマンドです。
  • 引用符内のテキストは、$TOTAL部分を除いてそのまま表示されます。
  • 文字列の中で変数名の前に$が付いている場合、Bashはそれを変数の値に置き換えます。これを変数展開と呼びます。
  • したがって、TOTALが128の場合、出力は「Total Cost is 128 cents」になります。

スクリプトを実行可能にして実行する

スクリプトが完成したので、実行可能にしてから実行する必要があります。

  1. 端末で、chmodコマンドを使ってスクリプトを実行可能にします:

    chmod +x ~/project/fruit_basket.sh

    このコマンドはファイルのモードを変更し、ユーザーに実行 (x) 許可を追加します。

  2. 次に、スクリプトを実行しましょう:

    ~/project/fruit_basket.sh

    このコマンドはBashに対して、私たちのスクリプトを実行するように指示します。~/project/ の部分は、私たちのスクリプトへのパスを指定します。

以下のような出力が表示されるはずです:

Total Cost is 128 cents

この出力は、私たちの果物のバスケット(1つのパイナップル、2本のバナナ、3つのスイカ、およびバスケット自体)の合計コストが128セントであることを示しています。

まとめ

この実験では、シェルプログラミングにおいて基本演算子を使って算術演算を行う方法を学びました。個々のコスト用の変数を定義し、算術式を使って合計を計算することで、果物のバスケットの合計コストを計算するBashスクリプトを作成しました。また、スクリプトを実行可能にする方法と、コマンドラインから実行する方法も学びました。

忘れないでおくポイント:

  1. Bashスクリプトはシャベン行 (#!/bin/bash) から始まります。
  2. Bashの変数は、=記号の周りにスペースを入れずに割り当てます。
  3. Bashの算術演算は $(( )) の中で行われます。
  4. echo コマンドは出力を表示するために使用されます。
  5. スクリプトは実行する前に chmod +x で実行可能にする必要があります。

これらのスキルは、より複雑なシェルスクリプトのタスクの基礎を形成し、スクリプト内で計算を行う必要があるさまざまなシナリオに適用できます。