linux shell中关于变量问题
while["$1"!="${1##[-+]}"];是什么意思?主要是对${1##[-+]}不理解...
while [ "$1" != "${1##[-+]}" ];是什么意思?
主要是对${1##[-+]}不理解 展开
主要是对${1##[-+]}不理解 展开
1个回答
展开全部
$1是第一个入参
${varible##*string} 从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
比如
TEST=123abc456abc789
echo ${TEST##*abc} ===>删掉123abc456abc剩下789
所以
${1##[-+]}表示第一个入参删除开始的-+字符
${varible##*string} 从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
比如
TEST=123abc456abc789
echo ${TEST##*abc} ===>删掉123abc456abc剩下789
所以
${1##[-+]}表示第一个入参删除开始的-+字符
追问
貌似不是,linux 里面的/etc/init.d/functions里面的daemon函数有这一句,但是貌似和你的理解有所不同
追答
怎么会理解的不同呢
看如下我做的实验
> a=-111111
> b=+222222
> c=----333
> d=++++444
> e=555555
> echo ${a##[-+]}
111111
> echo ${b##[-+]}
222222
> echo ${c##[-+]}
---333
> echo ${d##[-+]}
+++444
> echo ${e##[-+]}
555555
你搜索一下"bash 字符串", 看看相关文章。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询