BASHスクリプトは、LinuxおよびUnixのようなシステムでタスクを自動化するための強力なツールです。ファイルとプロセスの操作で知られていますが、部門などの算術操作も多くのスクリプトで重要な役割を果たします。 2つの変数で正しく分割する方法を理解することは、リソースの割り当て、データ処理などに役立ちます。この記事では、Bashのパフォーマンス部門の微妙さを調査し、算術操作をスムーズかつ効率的に実行するための知識を提供します。
基本コンセプトbashの変数
bashの変数は、スクリプトの実行中に変更できるデータに割り当てられた名前です。数値、文字列、またはファイル名を保存するために変数を使用することがよくあり、これらのデータはさまざまな操作を実行するために操作できます。
算術操作の概要bashは、基本的な算術操作を直接または外部ユーティリティを通じてサポートします。これらの操作には、追加、減算、乗算、および分割が含まれます。ただし、Bash自体は整数算術を実行します。つまり、他のツールを使用しない限り、小数なしでのみ整数を処理できます。
算術コマンドの紹介bashで算術操作を実行する2つの主要な方法があります:
bashスクリプトファイルを作成
スクリプトの書き込みを開始するには、NanoやVIMなどのテキストエディターを使用して.sh拡張機能を使用してファイルを作成します。たとえば、
nano myscript.sh
スクリプトを作成した後、chmodコマンドを使用して実行可能にする必要があります:
chmod x myscript.sh
バッシュスクリプトは通常、シェバン(#!)から始まり、その後にバッシュインタープレーターへのパスが続きます。
#!/bin/bash # 你的脚本从这里开始
変数を宣言します
割り当て
bashの変数に値を宣言して割り当てるには、次の構文を使用します。これらの変数は、算術操作で使用できるようになりました。
var1=10 var2=5
使用するにはexprexprコマンドを使用してください:
これは、var1の結果をvar2で割った出力です。 result=$(expr $var1 / $var2)
echo "结果是 $result"
exprは整数算術のみをサポートするため、分割できない2つの整数を分割すると、分数部分が切り捨てられます。
算術的拡張機能$(())算術拡張機能を使用すると、より単純な構文と直接スクリプト統合が可能になります:
この方法はより単純で、外部プロセスを生成しないため、EXPRよりも高速です。
非整数の結果の処理
フローティングポイント除算の課題bash自体は、非統合値につながる分割を複雑にするフローティングポイント算術をサポートしていません。 フローティングポイント除算のソリューション
フローティングポイント分割を処理するには、BCツールを使用できます。
result=$(echo "$var1 / $var2" | bc -l)
このコマンドは、分割操作をBCに送信します。BCは、浮動小数点算術を処理し、結果を返します。 echo "结果是 $result"
一般的なトラップとエラー
ゼロ
で割ってゼロで分割しようとすると、スクリプトエラーが発生します。部門を実行する前に、分母がゼロかどうかを確認してください:
if [ $var2 -eq 0 ]; then
echo "错误:被零除。"
else
result=$(($var1 / $var2))
echo "结果是 $result"
fi
非デジタル入力の処理
if ! [[ "$var1" =~ ^[0-9] $ ]] || ! [[ "$var2" =~ ^[0-9] $ ]]; then
echo "错误:非数字输入。"
else
result=$(($var1 / $var2))
echo "结果是 $result"
fi
実用的な例
インタラクティブスクリプトはユーザー入力に使用されます
ユーザー入力を受け入れ、分割を実行するスクリプトを作成します:
#!/bin/bash
echo "输入两个数字:"
read var1 var2
if [[ "$var2" -eq 0 ]]; then
echo "不能被零除。"
else
result=$(echo "$var1 / $var2" | bc -l)
echo "除法结果:$result"
fi
結論
この記事では、整数操作から浮動小数点数の処理まで、BASHスクリプトで部門を実行する重要なポイントを紹介します。これらの原則を理解することにより、スクリプトの機能を強化し、複雑な計算を簡単に実行できます。これらのテクニックを使用して、スクリプトスキルを向上させ、より高度な問題を解決してみてください。
以上がBash Scriptingで2つの変数を分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。