exprコマンドを使用するさまざまな方法

exprコマンドを使用するさまざまな方法

私はbash exprコマンドの前後に学習しようとしています。 exprコマンドを使用する最も基本的で最も創造的で、トリッキーで予期しない方法は何ですか?小さくて管理しやすい例が良いです。

答え1

私は主にexpr正規表現マッチングに使用します。時にはsedorよりも説明的ですgrep

if expr "$value" : '.*bar$' >/dev/null; then ...

比較:

if echo "$value" | grep '.*bar$' >/dev/null; then ...

または:

name=`expr "$filename" : '.*/\(.*\)\.[^.]*$'`

比較:

name=`echo "$filename" | sed 's!.*/\(.*\)\.[^.]*$/\1/'`

機能的には同じですが、exprはやや高速です。特に、過去には一部のシェルに組み込み関数として expr がありました (例: DEC Ultrix)。

また、私は厳密なBourneシェル構文を使用してプログラムするので、次の基本的exprな算術を使い続けます。

count=0
while [ $count -lt 10 ]; do
    # something
    count=`expr $count + 1`
done

関連情報