BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

例を含むBash/シェルスクリプトの数学/算術

数学は簡単で、Bashスクリプトは簡単なので、Bash/シェルスクリプトで数学/算術を実行するのも簡単です。 そうです。 方法は次のとおりです。

整数の操作

Bashの組み込み演算は、整数(整数)値のみを処理できます。整数以外の値で変数を宣言しようとした場合:

declare -i e=2.5

次のように表示されます:

bash: declare: 2.5: syntax error: invalid arithmetic operator (error token is ".5")

整数以外の数値を操作するには、外部プログラムを使用して計算を実行する必要がありますが、最初に、組み込みのBash演算を使用して整数を操作する方法を説明します。

変数宣言の使用

変数がdeclareを使用して整数として宣言された場合 ステートメントでは、特別な考慮なしに算術演算を実行できます:

# Declaring variables as integers
declare -i x=4
declare -i y=2

# Performing arithmetic with integer variables
result=x/y 

echo $result

これは戻ります:

2

変数が整数として宣言されている場合、評価のために数学ステートメントを角かっこで囲む必要はありません。

二重括弧/括弧の使用

変数が特に整数として宣言されていない場合、スクリプトパラメータとして渡されている場合、またはプログラムから出力されている場合は、デフォルトで文字列として扱われます。

Bashには、算術で文字列を処理する機能があります。ただし、式が二重角かっこを使用した算術式としてフラグが立てられている場合に限ります。 。以下の例を参照してください:

x = 6
((y=$x+3))
echo $y

上記のBashスクリプトスニペットは、式の正しい評価を出力します:

9

…括弧で囲まれた算術式は、文字列として扱うのではなく、数値を含む変数を含むものとして適切に解釈されているためです。

角かっこなし:

y=$x+3

次の出力が得られます:

6+3

式は2つの文字列を結合するものとして扱われ、評価されません。

サポートされている数学演算子

Bashの組み込み演算は、次の演算子をサポートしています。

+ 追加
減算
++ インクリメント
デクリメント
* 乗算
/ 分割
残り
** べき乗

ブール値と算術演算

評価された式は0または1を返すため、ブール演算子を使用する場合にも二重角かっこが表示されます。

if (( x > y )); then
    echo "x is greater than y"
fi

Bashブール演算の詳細についてはこちらをご覧ください

10進値の操作

bcの使用 コマンド

記事の前半で示したように、整数以外の値でBash演算を使用すると、エラーが発生します。

bc コマンドは10進値(およびより複雑な数学)を処理できます。構文は次のとおりです。

bc OPTIONS FILE

場所:

  • オプションはオプションのリストです(オプションの完全なリストについては、こちらを参照してください)
  • FILEは、解くべき算術を含むテキストファイルへのパスです。

bcとして パイプされた入力を受け入れます。方程式をファイルに保存する必要はありません。コンソールから直接パイプで接続できます:

echo "2.32+3.45" | bc

…次の正解が出力されます:

5.77

コマンドラインアプリケーションの入力と出力のパイピングとリダイレクトの概要は次のとおりです。

次のコマンドを実行すると、完全なbcユーザーマニュアルを表示できます。

man bc

bcコマンドの複雑な数学には多くの高度な構文があり、ユーザーマニュアルで詳しく説明されています。


  1. 6 つの実用的な例を含む Bash シェル関数のチュートリアル

    Bash シェル関数は、グループに単一の名前を使用して、後で実行するために複数の UNIX / Linux コマンドをグループ化する方法です。 . Bash シェル関数は、通常の Unix コマンドと同じように実行できます。シェル関数は、それらを解釈するための新しいプロセスを作成することなく、現在のシェル コンテキストで実行されます。bash エイリアスと関数の両方を使用すると、より長い、またはより複雑なコマンドのショートカットを定義できます。ただし、エイリアスは、このチュートリアルで説明されているように、これらの関数が許可する制御フロー、引数、およびその他の巧妙なものを許可しません。 この

  2. 5 つの実用的な例を含む Bash スクリプト入門チュートリアル

    進行中の Unix Sed および Unix Awk シリーズと同様に、Bash スクリプトに関するいくつかの記事を投稿します。実用的な例ですべての bash スクリプト テクニックをカバーします。 シェルは、ユーザー コマンドを解釈するプログラムです。コマンドは、ユーザーが直接入力するか、シェル スクリプトと呼ばれるファイルから読み取るかのいずれかです。ユーザーからの入力を直接読み取る場合、シェルは対話型シェルとして呼び出されます。 シェルは、ファイルからコマンドを読み取って実行するときに、非対話型シェルとして呼び出されます。この場合、シェルはスクリプト ファイルの各行を上から下に読み取