bash 中 ${-#*i} 是什么意思?

devtools/2024/12/27 6:26:26/

--------------------------------------------------
author: hjjdebug
date:   2024年 12月 25日 星期三 17:43:45 CST
description: bash 中 ${-#*i} 是什么意思?
--------------------------------------------------
在centos 的 /etc/profile 中有这样的语句
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then 
            . "$i"                         #是交互式shell, 直接source
        else
            . "$i" >/dev/null              #非交互式shell,  将输出重定向到空
        fi
    fi
done

其中难理解的是:${-#*i}
${-#*i}, 是一个变量置换.
$-: 是一个内置变量,是外壳shell的标志集合,是一个字符串, 我的是himBHs
#是元字符,*也是元字符,i不是元字符,就是字符"i"
# 是从左侧开始查找并删除匹配的意思,最小匹配 ${parameter#[word]} :  
## 是最大匹配 ${parameter##[word]} : 
* 是匹配任何字符
i 是字面意义的i字符


if [ "${-#*i}" != "$-" ] 语句含义:
前部分是变量替换,最小匹配删除从开始到i字符为止得到新变量,与原变量相比
不等就是字符串带i, 等于就是字符串不带i
带i, 则说明shell 是interactive 的, 是交互式shell


 


http://www.ppmy.cn/devtools/145738.html

相关文章

【算法题解】Bindian 山丘信号问题(E. Bindian Signaling)

问题描述 在 Berland 古老的 Bindian 部落中,首都被 nn 座山丘围成一个圆环,每个山丘上都有一名守望者,日夜观察着周围的情况。 如果有危险,守望者可以在山丘上点燃篝火。两座山丘的守望者可以看到彼此的信号,条件是…

只谈C++11新特性 - 默认函数

默认函数 C11之前的问题 在C11之前,如果给一个类显式地声明了构造函数(无论是默认构造函数还是自定义的),系统就不会再生成默认的抽象赋值函数和拷贝构造函数。这带来了一些不方便和隐藏的问题。举一个简单的例子: …

2-196基于matlab的混沌改进蚁群算法优化PID

基于matlab的混沌改进蚁群算法优化PID。以控制误差为PID控制参数优化的目标函数,输入比例系数、积分比例系数、微分比例系数等参数进行优化,输出最佳的控制参数。程序已调通,可直接运行。 2-196基于matlab的混沌改进蚁群算法优化PID

无需公网 IP 实现外部访问 Puter 一站式云平台

Puter 是一款隐私至上的个人云,它是开源桌面环境,运行在浏览器中,这款桌面环境具备丰富的功能、异常快速和高度可扩展性。它可以用于构建远程桌面环境,也可以作为云存储服务、远程服务器、Web 托管平台等的界面。 第一步&#xf…

报表工具DevExpress Reporting v24.2亮点 - AI功能进一步强化

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 报表工具DevExpress Reporting v24.2将于近期发…

决策树(理论知识3)

目录 评选算法信息增益( ID3 算法选用的评估标准)信息增益率( C4.5 算法选用的评估标准)基尼系数( CART 算法选用的评估标准)基尼增益基尼增益率 评选算法 决策树学习的关键在于:如何选择最优划…

CCF-A类 USENIX ATC 2025截稿指南

一、会议资讯: USENIX Annual Technical Conference (USENIX ATC)2025,即2025年USENIX年度技术会议,是CCF推荐A类会议,Core Conference Ranking A类会议。会议汇集了领先的系统研究人员,展示尖端的系统研究&#xff0…

OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载

在人工智能的浪潮中,OpenAI的12天发布会无疑是2024年科技界的一场盛宴。从12月5日开始,OpenAI连续12天每天发布一个新应用或功能,标志着AI技术的又一次飞跃。本文将梳理这些激动人心的发布,带你一探究竟。 OpenAI发布会概览 Ope…