求大大解释如下shell语句

## 求大大解释如下shell语句 ##

"$-"显示shell 使用的当前选项

$echo $-
 himBH

1、himBH这个结果又是什么意思?

2、 看不懂,求第69行详解。多谢++

 67 for i in /etc/profile.d/*.sh ; do
 68     if [ -r "$i" ]; then
 69         if [ "${-#*i}" != "$-" ]; then
 70             . "$i"
 71         else
 72             . "$i" >/dev/null 2>&1
 73         fi
 74     fi
 75 done
阅读 4.7k
评论
    2 个回答
    • 13.3k
    1. himBH每一个字符是一个shell的选项,详情man bash然后搜索 -h -B 等。

    2. "${-#*i}" 这是bash的字符串处理语法:

    ${VARNAME#*/}: 从左至右, 删除$VARNAME中第一个/及左边的子串。以此类推。

      相似问题
      推荐文章