linux shell中关于变量问题

while["$1"!="${1##[-+]}"];是什么意思?主要是对${1##[-+]}不理解... while [ "$1" != "${1##[-+]}" ];是什么意思?
主要是对${1##[-+]}不理解
展开
 我来答
yy_galois
推荐于2016-09-13 · TA获得超过857个赞
知道小有建树答主
回答量:429
采纳率:100%
帮助的人:155万
展开全部
$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 字符串", 看看相关文章。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式