加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 这里做了什么[“${ – #* i}”!=“$ – ”]

发布时间:2020-12-15 22:13:25 所属栏目:安全 来源:网络整理
导读:在RHEL6 / etc / profile附近,有一个if语句: if [ "${-#*i}" != "$-" ]; !=我猜测字符串比较运算符是“不相等”.左边我猜的是变量中的字符串 – @ * i而右边是$ – 中的字符串(我认为是传递给脚本的标志).这是一个for循环的中间,$i应该存在,但我不知道 –
在RHEL6 / etc / profile附近,有一个if语句:

if [ "${-#*i}" != "$-" ];

!=我猜测字符串比较运算符是“不相等”.左边我猜的是变量中的字符串 – @ * i而右边是$ – 中的字符串(我认为是传递给脚本的标志).这是一个for循环的中间,$i应该存在,但我不知道 – #*我可能是.

假设我是正确的$ – 是传递给脚本的标志,我认为${ – #* i}也必须是标志,但我真的没有线索.

有人可以解释一下.与这些特殊变量列表的链接也将受到赞赏.

提前致谢.

解决方法

我不知道$ – 变量是什么,但上面的代码基本上是测试$ – 是否包含i.

在bash中,${var#pattern}表示删除了最小匹配模式的$var.如果未找到pattern,则返回$var不变.

所以在你的例子中,如果$ – 是鱼.那么${ – #* i}就是sh.所以if语句是真的(因为sh!= fish).

你的链接:

bash中的变量扩展:http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

Bash定义的变量:http://www.gnu.org/software/bash/manual/bashref.html#Shell-Variables

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读