シェルの4つのモデルが一致します

変数名(または可変数)とモード:POSIXは、4つの代替の構成パラメータを(シェルの古いバージョンでサポートされていてもよい)を提供するために、シェルパターンマッチングであり、各構造体は、2つのパラメータを有しています。
第一のモード:
${variable%pattern}このモードでは、変数シェルルックス、パターンの端部は、それが所定のパターンであるかどうかを確認するために、そしてもしそうであれば、コマンドラインから最短一致パターンの右側に変数の内容を削除するために
第二のモード:
${variable%%pattern}このモードでは、変数シェルルックス、パターンの端部は、それが所定のパターンであるかどうかを確認し、もしそうであれば、コマンドラインから最長一致モードの右側に変数の内容を削除する場合。
第三のモード:
${variable#pattern}このモードそれはモデルに始め、そしてもしそうであれば、コマンドラインから最短一致パターンの左側の変数の内容を削除するためのパターンである場合、ルックアップシェル変数を参照する場合、
:第四のモード
${variable##pattern}このモードでシェル変数それが与えられたか否かを、パターン模様の終わりに、外観を見て、もしそうであれば、コマンドラインから最長一致モードの右側に変数の内容を削除するために
4つのモードは、変数の値を変更しないであろう唯一のパターンでで*マッチングのシンボルを使用して、%%%、および###の違いがあります。



[root@root shell]# var=testcase
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var%s*e} 从最右边删除最短匹配
testca
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var%%s*e} 从最右边删除最长匹配
te
[root@root shell]# echo $var  变量没有改变
testcase
[root@root shell]# echo ${var#?e} 从最左边删除最短匹配
stcase
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var#*e}  从最左边删除最短匹配
stcase
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var##*e} 从最左边删除最长匹配,即删除所有

[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var##*s} 从最左边删除最长匹配
e
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var#test} 删除test
case
[root@root shell]# echo $var
testcase
[root@root shell]# echo ${var#tests} 没有匹配
testcase
[root@root shell]#
另外
var=97%
var=${var%s?}
echo $var #打印97

転送:https://www.cnblogs.com/oxspirt/p/7242837.html

公開された46元の記事 ウォン称賛13 ビュー60000 +

おすすめ

転載: blog.csdn.net/luliuliu1234/article/details/80994385