私はbash exprコマンドの前後に学習しようとしています。 exprコマンドを使用する最も基本的で最も創造的で、トリッキーで予期しない方法は何ですか?小さくて管理しやすい例が良いです。
答え1
私は主にexpr
正規表現マッチングに使用します。時にはsed
orよりも説明的です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