コマンドラインで作業しているときに(特にシェルスクリプトを処理しているとき)、文字列内の部分文字列の検索、そのインデックスの検索などのアクションを実行する必要がある状況に陥ることがあります。比較と算術演算を実行します。
知らない人のために、 exprと呼ばれるコマンドラインユーティリティがあります。 -これですべてが可能になります。このチュートリアルでは、このコマンドの基本と、コマンドが提供するいくつかの機能について説明します。ここに記載されているすべての例と手順は、Ubuntu16.04LTSでテストされていることに注意してください。
Linuxexprコマンド
ツールの公式ドキュメントには、式の評価に使用されると記載されています。 exprコマンドの構文は次のとおりです。
expr EXPRESSION
expr OPTION
以下は、このツールがどのように機能するかについての良いアイデアを与えるいくつかのQ&Aスタイルの例です。
Q1。 exprを使用して算術演算を実行するにはどうすればよいですか?
2つの数値(たとえば、5と6)を追加したい場合、exprを使用してこれを行う方法は次のとおりです。
expr 5 + 6
上記のコマンドの動作は次のとおりです。
したがって、合計「11」が出力で生成されたことがわかります。演算子の両側に1つのスペース(この場合は「+」)が必須であることに注意してください。それ以外の場合、exprコマンドは次の出力を生成します。
これは明らかに間違っており、私たちが期待するものではありません。
同様に、減算操作は次の方法で実行できます。
expr 15 - 6
分割の例を次に示します。
expr 10 / 3
前述のコマンドは、出力で3つしか生成しないことに注意してください。余りを確認したい場合は、%演算子を使用してください。
expr 10 % 3
乗算は、理想的には次の方法で実行する必要があります。
expr 10 * 3
ただし、*は組み込みのシェル演算子でもあるため、これは機能しません。したがって、乗算演算子のように動作させるには、次のようにエスケープ文字を前に付ける必要があります。
expre 10 \* 3
Q2。 exprを使用して比較操作を実行するにはどうすればよいですか?
exprコマンドを使用すると、さまざまな方法で比較操作を実行することもできます。たとえば、次のコマンド(下のスクリーンショットの3番目)は、nullでも0でもない場合は、ARG1を返します。それ以外の場合は、ARG2を返します。
パイプは組み込みのシェル演算子として扱われるため、パイプの前のバックスラッシュはエスケープ文字として使用されることに注意してください。
同様に、多くの操作を実行できます。次のスクリーンショット(コマンドのマニュアルページから抜粋)は、exprコマンドで実行できる比較の種類に関する良いアイデアを提供するはずです。
Q3。 exprを使用して文字列関連の操作を実行するにはどうすればよいですか?
exprコマンドを使用すると、文字列関連の操作をいくつか実行することもできます。たとえば、文字列の長さを見つけるには、次の方法でツールを使用できます。
expr length [string]
文字列にスペースが含まれている場合は、エスケープ文字を使用する必要があります。
次に進むと、exprを使用して特定の文字列の部分文字列を抽出することもできます。構文は次のとおりです。
expr substr [string] [pos] [length]
たとえば、「howtoforge」から「forge」をフェッチするには、次の方法でツールを使用できます。
さらに、exprを使用して、特定の文字列内の一連の文字の開始インデックスを検索することもできます。構文は次のとおりです
expr index [string] [chars]
たとえば、「howtoforge」で「wt」のインデックスを検索するには、次のようにexprを使用します。
ご存知かもしれませんが、exprは機能が豊富なコマンドですが、理解しやすく、使いやすいコマンドです。ここで、このチュートリアルでは、それが提供する基本的な機能のほとんどに関する情報を提供しようとしました。これらの練習が終わったら、ツールのマニュアルページにアクセスして詳細を確認できます。