shellのexpr演算子の使用
exprを使用する注意:
演算子と計算に使用する数値の左右に少なくとも1つのスペースがあります.そうしないと、エラーが発生します.
乗算記号を使用する場合は、その特定の意味を反斜線で遮断する必要があります.
exprのエンタープライズクラス実戦事例の詳細
関数ライブラリが少ないため、exprは文字列が整数であるか否かを判断するための簡単な方法である.原理はexprが計算をするときに変数や文字列が整数でなければならないルールです.変数または文字列を整数に加算します.$0を返します.この変数は整数です.
たとえば、出力が整数かどうかをパラメータで判断します.
入力した数値が空ではないと判断する.
拡張:
プログラミング構想
第一関門:パラメータの個数が2であるかどうかを判断して、もしそうでないならば、あなたに運行を中止するように提示します
2つ目:入力されたパラメータが整数であるかどうかを判断し、そうでない場合は運転の終了を促す
第三関門:運転する
exprの特殊な使い方:ファイル拡張ネーミングが要求に合致するかどうかを判断する
exprコマンドを使用して長さを計算します.
shellスクリプトを使用して、次の文の文字列が6未満の単語を印刷します.
I am oldboy linux welcome to our training
bc計算機:
演算子と計算に使用する数値の左右に少なくとも1つのスペースがあります.そうしないと、エラーが発生します.
乗算記号を使用する場合は、その特定の意味を反斜線で遮断する必要があります.
exprのエンタープライズクラス実戦事例の詳細
関数ライブラリが少ないため、exprは文字列が整数であるか否かを判断するための簡単な方法である.原理はexprが計算をするときに変数や文字列が整数でなければならないルールです.変数または文字列を整数に加算します.$0を返します.この変数は整数です.
たとえば、出力が整数かどうかをパラメータで判断します.
#!/bin/bash
s=`expr $1 + 4 2>&1`
a=$?
if [ $a -eq 0 ]; then
echo "this is int"
else
echo "bad"
fi
入力した数値が空ではないと判断する.
#!/bin/bash
read -p "the first num:" num
read -p "the two num:" num2
#num=4
#num2=
if [ ! -n $num ] && [ ! -n $num2 ]; #-n: , !
then
echo "this is a bab"
exit 1
fi
拡張:
プログラミング構想
第一関門:パラメータの個数が2であるかどうかを判断して、もしそうでないならば、あなたに運行を中止するように提示します
2つ目:入力されたパラメータが整数であるかどうかを判断し、そうでない場合は運転の終了を促す
第三関門:運転する
#!/bin/bash
read -p "the first num:" num
read -p "the two num:" num2
#num=4
#num2=
if [ ! $num ]; #-n: , ! ! , ,
then
echo "this is a bab"
exit 1
fi
if [ ! $num2 ];
then
echo "this is a babe"
exit 2
fi
expr $num + $num2 + 4 > /dev/null #
if [ $? -ne 0 ];
then
echo "this must two arge"
exit 3
fi
echo "the is good"
#
~
exprの特殊な使い方:ファイル拡張ネーミングが要求に合致するかどうかを判断する
#!/bin/bash
if expr "$1" : ".*\.pub" >/dev/null
then
echo "using $1"
else
echo "using bad"
fi
exprコマンドを使用して長さを計算します.
root@ubuntu:/home/xpg# char="i am oldboy"
root@ubuntu:/home/xpg# expr length "$char"
11
root@ubuntu:/home/xpg# echo ${#char}
11
root@ubuntu:/home/xpg# echo $char | wc -L
11
shellスクリプトを使用して、次の文の文字列が6未満の単語を印刷します.
I am oldboy linux welcome to our training
#!/bin/bash
char="I am oldboy linux welcome to our training"
for i in $char;
do
#echo $i
if [ `echo ${#i}` -le 6 ] >/dev/null # if [ `expr length "$i"` -le 6 ] >/dev/null expr
then
echo $i
fi
done
bc計算機:
root@ubuntu:/home/xpg# echo 8.8-5|bc
3.8
root@ubuntu:/home/xpg# echo "scale=2;355/133" |bc #scale=2
2.66
root@ubuntu:/home/xpg#