[[ ]]
比較時,右邊不加引號時是一個模式,用 ==
符號比較是否相等,其中 ?
代表任意一個字字元。
[dywang@dywmsi zzz]$ [[ abcd == abc ]] && echo Y || echo N N [dywang@dywmsi zzz]$ [[ abcd == abc. ]] && echo Y || echo N N [dywang@dywmsi zzz]$ [[ abcf == abc? ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ abcd == abc? ]] && echo Y || echo N Y
==
符號比較是否相等,其中 *
代表任意字元 0 個以上。
[dywang@dywmsi zzz]$ [[ abc == abc* ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ abc., == abc* ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ abcdf == abc* ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ abcdfe == abc* ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ abcd == abc* ]] && echo Y || echo N Y
> <
符號比較是大小時,是比較字串的 ASCII 碼大小。
[dywang@dywmsi zzz]$ [[ abc > abe ]] && echo Y || echo N N [dywang@dywmsi zzz]$ [[ abf > abe ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ 12 > 13 ]] && echo Y || echo N N [dywang@dywmsi zzz]$ [[ 192 > 53 ]] && echo Y || echo N N
=~
符號判斷是否匹配,支援正規表示式。
[dywang@dywmsi zzz]$ [[ abcd =~ abc. ]] && echo Y || echo N Y [dywang@dywmsi zzz]$ [[ 1abcd2 =~ abc. ]] && echo Y || echo N Y
=~
符號判斷字串是否是正負數字?
[dywang@dyw219 zzz]$ num='-19' ; [[ $num =~ ^-?[0-9]+$ ]] && echo Y || echo N Y [dywang@dyw219 zzz]$ num='19' ; [[ $num =~ ^-?[0-9]+$ ]] && echo Y || echo N Y [dywang@dyw219 zzz]$ num='19 ' ; [[ $num =~ ^-?[0-9]+$ ]] && echo Y || echo N N